Thanks to visit codestin.com
Credit goes to github.com

Skip to content

feat: physics experiment score fetch#85

Merged
BenderBlog merged 13 commits into
BenderBlog:mainfrom
hazuki-keatsu:feat/physicalExperimentScore
Oct 15, 2025
Merged

feat: physics experiment score fetch#85
BenderBlog merged 13 commits into
BenderBlog:mainfrom
hazuki-keatsu:feat/physicalExperimentScore

Conversation

@hazuki-keatsu
Copy link
Copy Markdown
Collaborator

@hazuki-keatsu hazuki-keatsu commented Oct 12, 2025

这个PR主要实现了之前未解决的物理实验分数抓取问题。

  • 使用了物理实验报告系统作为分数来源。
  • 使用均方差值和结构性相似作为图片比对算法。
  • 为了提升比对计算性能,还进行了并发计算和预提取特征的工程优化。

任务表

  • 分数图片链接的抓取
  • 图片数据的比对获取标签
  • 标签数据的呈现(对于低置信值信息予以提示)
  • 22种Pattern的收集(11/22)等待用户提供数据

- 缓存 Dio 实例以避免重复创建,提高网络请求性能
- 增加对登录获取的会话 ID 的校验,若为空则抛出异常
- 修复部分 dio.post 调用未正确使用 await 的问题

refactor(image_recognition_service): 延迟初始化 ExperimentReportSession

- 将 _session 改为延迟初始化,仅在需要时创建实例
- 更新调用方式以确保使用带缓存的 session getter
@BenderBlog
Copy link
Copy Markdown
Owner

Continue discussion on topic #84.

我看到了图片,有个大胆的想法。用微软雅黑字体生成一堆这样的图片,搞分析……

同时,图片原始的文件名有没有保留。我打算确认文件名和图片内容是一一对应的,这样就只需要一个 Map<String, double> 就能解决问题了。

@hazuki-keatsu
Copy link
Copy Markdown
Collaborator Author

Continue discussion on topic #84.

我看到了图片,有个大胆的想法。用微软雅黑字体生成一堆这样的图片,搞分析……

同时,图片原始的文件名有没有保留。我打算确认文件名和图片内容是一一对应的,这样就只需要一个 Map<String, double> 就能解决问题了。

  1. 关于第一点,我做过尝试,我使用Pillow库生成过一些图片,但是这些图片都没有呈现出服务器发回的图片那样的边缘色差。不过这个确实值得尝试一下。
image
  1. 关于图片的文件名,我确认过了,和内容是没有关系的,那个就是服务器生成的临时图片。。。。

@BenderBlog
Copy link
Copy Markdown
Owner

BenderBlog commented Oct 12, 2025

但是这些图片都没有呈现出服务器发回的图片那样的边缘色差

可能在生成图片需要考虑 truetype ,也就是边缘色条的来源。

仅供参考哈,您按自己想法节奏写。

@hazuki-keatsu
Copy link
Copy Markdown
Collaborator Author

ok,我回头再研究研究

Copy link
Copy Markdown

@SilverPeach81 SilverPeach81 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

__1B0161E75AB8A44B75B74CDC

我有一个分数,能提交吗?

@BenderBlog
Copy link
Copy Markdown
Owner

BenderBlog commented Oct 14, 2025

__1B0161E75AB8A44B75B74CDC

我有一个分数,能提交吗?

感谢提供。您就这一个要提供吗,我们挺缺的。

顺便,能不能把图片压缩了发出来?我担心图片被压缩损失信息,尤其是透明信息。

@SilverPeach81
Copy link
Copy Markdown

SilverPeach81 commented Oct 14, 2025

感谢提供。 您就这一个要提供吗,我们挺缺的。

顺便,能不能把图片压缩了发出来? 我担心图片被压缩损失信息,尤其是透明信息。

只有这一个,因为看到我有的其他的这里已经有了。我是直接从网站上另存为下来的。
__1B0161E75AB8A44B75B74CDC.zip

顺便,我发现网站上相同分数的文件名似乎是相同的,能否直接通过获取图片的文件名或者文件地址来判别分数呢?

@hazuki-keatsu
Copy link
Copy Markdown
Collaborator Author

顺便,我发现网站上相同分数的文件名似乎是相同的,能否直接通过获取图片的文件名或者文件地址来判别分数呢?

直接使用文件名作为识别标准我觉得不太妥,链接里面有cache关键词,说明这个文件可能就是个临时文件。所以在新的方案中我决定使用文件的哈希值作为判断依据,这个纯算法的方法可能会作为一个分支保留。

- Updated localization files to include new strings for score viewing and email sending.
- Modified ExperimentData model to use RecognitionResult for score representation, including JSON serialization/deserialization.
- Enhanced ExperimentInfoCard to display score information and allow users to send score data via email.
- Implemented a new image recognition service that utilizes MD5 hash matching for score recognition.
- Removed unused similarity metrics code to streamline the image recognition process.
- Updated experiment session handling to accommodate new score recognition logic.
- Adjusted pubspec.yaml to include the new score hashes JSON file.
@hazuki-keatsu
Copy link
Copy Markdown
Collaborator Author

完成使用MD5作为图片匹配的方案。

注意:

  • 修改了ExperimentData的结构,我不确定会不会由于可能的缓存机制导致内存溢出
  • 我不小心把setting.json和build.gradle也一并推送了,麻烦删一下。。

@BenderBlog
Copy link
Copy Markdown
Owner

BenderBlog commented Oct 14, 2025

完成使用MD5作为图片匹配的方案。

注意:

* 修改了ExperimentData的结构,我不确定会不会由于可能的缓存机制导致内存溢出

* 我不小心把setting.json和build.gradle也一并推送了,麻烦删一下。。

etting.json和build.gradle 你那里删下,反正没 merge ?

@hazuki-keatsu
Copy link
Copy Markdown
Collaborator Author

只能明天再改,现在断电了🥲

Copy link
Copy Markdown
Collaborator Author

@hazuki-keatsu hazuki-keatsu left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

我已经完成代码的Review工作,同时做了以下工作:

  • 移除未使用到的方法,简化代码
  • 增加缓存冲突处理机制
  • 移除未使用到的依赖

Comment thread lib/controller/experiment_controller.dart
Comment thread lib/page/experiment/experiment_info_card.dart
@BenderBlog BenderBlog merged commit 6b1a69e into BenderBlog:main Oct 15, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants