mirror of
https://github.com/NanjingForestryUniversity/supermachine--tomato-passion_fruit.git
synced 2025-11-09 06:44:02 +00:00
feat:新增20240627test4为现场部署版本的测试版(包含传统方法、实例分割、目标检测、图像分类多个模型)
fix:修复在20240627test4中的classifier.py的analyze_tomato函数中white_defect的函数忘记传递两个阈值量的错误;修复analyze_tomato函数中的叶片实例分割存在的问题,解决由于变量污染引起的分割错误;
This commit is contained in:
parent
e5692c795e
commit
242bb9a71b
20
.gitignore
vendored
20
.gitignore
vendored
@ -90,12 +90,16 @@ fabric.properties
|
||||
!/20240410RGBtest1/super-tomato/defect_mask.bmp
|
||||
!/20240410RGBtest1/super-tomato/prediction.png
|
||||
/20240529RGBtest3/data/
|
||||
/20240627Actual_deployed/.idea/
|
||||
/20240627Actual_deployed/qt_test/
|
||||
/20240627Actual_deployed/封装exe/
|
||||
/20240627Actual_deployed/qt_test/
|
||||
/20240627Actual_deployed/qt_test/PF/
|
||||
/20240627Actual_deployed/image/
|
||||
/20240627Actual_deployed/pfzc/
|
||||
/20240627Actual_deployed/pfzz/
|
||||
/20240627test4/.idea/
|
||||
/20240627test4/qt_test/
|
||||
/20240627test4/封装exe/
|
||||
/20240627test4/qt_test/
|
||||
/20240627test4/qt_test/PF/
|
||||
/20240627test4/image/
|
||||
/20240627test4/pfzc/
|
||||
/20240627test4/pfzz/
|
||||
/20240529RGBtest3/原图108测试过程图/
|
||||
/20240627test4/20240718test/
|
||||
/20240627test4/testimg_result/
|
||||
/20240627test4/zz_test/
|
||||
/20240627test4/误识别测试20240714/
|
||||
|
||||
46
.idea/supermachine--tomato-passion_fruit.iml
generated
46
.idea/supermachine--tomato-passion_fruit.iml
generated
@ -3,29 +3,29 @@
|
||||
<component name="NewModuleRootManager">
|
||||
<content url="file://$MODULE_DIR$">
|
||||
<excludeFolder url="file://$MODULE_DIR$/.idea/copilot/chatSessions" />
|
||||
<excludeFolder url="file://$MODULE_DIR$/20240627Actual_deployed/封装exe/data_pyc" />
|
||||
<excludeFolder url="file://$MODULE_DIR$/20240627Actual_deployed/封装exe/result/main0带资源文件/_internal/cv2/gapi" />
|
||||
<excludeFolder url="file://$MODULE_DIR$/20240627Actual_deployed/封装exe/result/main0带资源文件/_internal/cv2/mat_wrapper" />
|
||||
<excludeFolder url="file://$MODULE_DIR$/20240627Actual_deployed/封装exe/result/main0带资源文件/_internal/cv2/misc" />
|
||||
<excludeFolder url="file://$MODULE_DIR$/20240627Actual_deployed/封装exe/result/main0带资源文件/_internal/cv2/utils" />
|
||||
<excludeFolder url="file://$MODULE_DIR$/20240627Actual_deployed/封装exe/result/main0带资源文件/_internal/numpy/.libs" />
|
||||
<excludeFolder url="file://$MODULE_DIR$/20240627Actual_deployed/封装exe/result/main0带资源文件/_internal/numpy/fft" />
|
||||
<excludeFolder url="file://$MODULE_DIR$/20240627Actual_deployed/封装exe/result/main0带资源文件/_internal/scipy/_lib/_uarray" />
|
||||
<excludeFolder url="file://$MODULE_DIR$/20240627Actual_deployed/封装exe/result/main0带资源文件/_internal/scipy/fft" />
|
||||
<excludeFolder url="file://$MODULE_DIR$/20240627Actual_deployed/封装exe/result/main0带资源文件/_internal/scipy/ndimage" />
|
||||
<excludeFolder url="file://$MODULE_DIR$/20240627Actual_deployed/封装exe/result/main0带资源文件/_internal/scipy/optimize/_highs" />
|
||||
<excludeFolder url="file://$MODULE_DIR$/20240627Actual_deployed/封装exe/result/main0带资源文件/_internal/scipy/sparse/linalg/_eigen" />
|
||||
<excludeFolder url="file://$MODULE_DIR$/20240627Actual_deployed/封装exe/result/main0带资源文件/_internal/scipy/spatial/transform" />
|
||||
<excludeFolder url="file://$MODULE_DIR$/20240627Actual_deployed/封装exe/result/main0带资源文件/_internal/scipy/stats/_levy_stable" />
|
||||
<excludeFolder url="file://$MODULE_DIR$/20240627Actual_deployed/封装exe/result/main0带资源文件/_internal/scipy/stats/_unuran" />
|
||||
<excludeFolder url="file://$MODULE_DIR$/20240627Actual_deployed/封装exe/result/main0带资源文件/_internal/sklearn/_loss" />
|
||||
<excludeFolder url="file://$MODULE_DIR$/20240627Actual_deployed/封装exe/result/main0带资源文件/_internal/sklearn/datasets/tests/data/openml/id_40945" />
|
||||
<excludeFolder url="file://$MODULE_DIR$/20240627Actual_deployed/封装exe/result/main0带资源文件/_internal/sklearn/preprocessing" />
|
||||
<excludeFolder url="file://$MODULE_DIR$/20240627Actual_deployed/封装exe/result/main1不带资源文件夹使用原始py文件" />
|
||||
<excludeFolder url="file://$MODULE_DIR$/20240627Actual_deployed/封装exe/result/main3不带资源文件夹使用pyc文件,修改log不报空果托错误信息,换图标" />
|
||||
<excludeFolder url="file://$MODULE_DIR$/20240627Actual_deployed/封装exe/result/main4设置与main3一致,去掉了resnet权重" />
|
||||
<excludeFolder url="file://$MODULE_DIR$/20240627Actual_deployed/封装exe/result/main5与main1一致,py文件使用20240529RGBtest3的main" />
|
||||
<excludeFolder url="file://$MODULE_DIR$/20240627Actual_deployed/封装exe/result/main6不带资源文件夹,py文件使用20240529RGBtest3,配置文件加载的是生成的pyc文件" />
|
||||
<excludeFolder url="file://$MODULE_DIR$/20240627test4/封装exe/data_pyc" />
|
||||
<excludeFolder url="file://$MODULE_DIR$/20240627test4/封装exe/result/main0带资源文件/_internal/cv2/gapi" />
|
||||
<excludeFolder url="file://$MODULE_DIR$/20240627test4/封装exe/result/main0带资源文件/_internal/cv2/mat_wrapper" />
|
||||
<excludeFolder url="file://$MODULE_DIR$/20240627test4/封装exe/result/main0带资源文件/_internal/cv2/misc" />
|
||||
<excludeFolder url="file://$MODULE_DIR$/20240627test4/封装exe/result/main0带资源文件/_internal/cv2/utils" />
|
||||
<excludeFolder url="file://$MODULE_DIR$/20240627test4/封装exe/result/main0带资源文件/_internal/numpy/.libs" />
|
||||
<excludeFolder url="file://$MODULE_DIR$/20240627test4/封装exe/result/main0带资源文件/_internal/numpy/fft" />
|
||||
<excludeFolder url="file://$MODULE_DIR$/20240627test4/封装exe/result/main0带资源文件/_internal/scipy/_lib/_uarray" />
|
||||
<excludeFolder url="file://$MODULE_DIR$/20240627test4/封装exe/result/main0带资源文件/_internal/scipy/fft" />
|
||||
<excludeFolder url="file://$MODULE_DIR$/20240627test4/封装exe/result/main0带资源文件/_internal/scipy/ndimage" />
|
||||
<excludeFolder url="file://$MODULE_DIR$/20240627test4/封装exe/result/main0带资源文件/_internal/scipy/optimize/_highs" />
|
||||
<excludeFolder url="file://$MODULE_DIR$/20240627test4/封装exe/result/main0带资源文件/_internal/scipy/sparse/linalg/_eigen" />
|
||||
<excludeFolder url="file://$MODULE_DIR$/20240627test4/封装exe/result/main0带资源文件/_internal/scipy/spatial/transform" />
|
||||
<excludeFolder url="file://$MODULE_DIR$/20240627test4/封装exe/result/main0带资源文件/_internal/scipy/stats/_levy_stable" />
|
||||
<excludeFolder url="file://$MODULE_DIR$/20240627test4/封装exe/result/main0带资源文件/_internal/scipy/stats/_unuran" />
|
||||
<excludeFolder url="file://$MODULE_DIR$/20240627test4/封装exe/result/main0带资源文件/_internal/sklearn/_loss" />
|
||||
<excludeFolder url="file://$MODULE_DIR$/20240627test4/封装exe/result/main0带资源文件/_internal/sklearn/datasets/tests/data/openml/id_40945" />
|
||||
<excludeFolder url="file://$MODULE_DIR$/20240627test4/封装exe/result/main0带资源文件/_internal/sklearn/preprocessing" />
|
||||
<excludeFolder url="file://$MODULE_DIR$/20240627test4/封装exe/result/main1不带资源文件夹使用原始py文件" />
|
||||
<excludeFolder url="file://$MODULE_DIR$/20240627test4/封装exe/result/main3不带资源文件夹使用pyc文件,修改log不报空果托错误信息,换图标" />
|
||||
<excludeFolder url="file://$MODULE_DIR$/20240627test4/封装exe/result/main4设置与main3一致,去掉了resnet权重" />
|
||||
<excludeFolder url="file://$MODULE_DIR$/20240627test4/封装exe/result/main5与main1一致,py文件使用20240529RGBtest3的main" />
|
||||
<excludeFolder url="file://$MODULE_DIR$/20240627test4/封装exe/result/main6不带资源文件夹,py文件使用20240529RGBtest3,配置文件加载的是生成的pyc文件" />
|
||||
</content>
|
||||
<orderEntry type="jdk" jdkName="tengg" jdkType="Python SDK" />
|
||||
<orderEntry type="sourceFolder" forTests="false" />
|
||||
|
||||
@ -1,7 +0,0 @@
|
||||
joblib==1.2.0
|
||||
numpy==1.25.0
|
||||
Pillow==9.4.0
|
||||
pywin32==305
|
||||
scikit_learn==1.2.2
|
||||
opencv-python==4.6.0.66
|
||||
scikit-learn==1.2.2
|
||||
@ -1,166 +0,0 @@
|
||||
2024-06-28 11:30:05,483 utils.py[line:84] - ERROR - 数据接收失败,错误原因: (109, 'ReadFile', '管道已结束。')
|
||||
2024-06-28 11:35:36,240 utils.py[line:84] - ERROR - 数据接收失败,错误原因: (109, 'ReadFile', '管道已结束。')
|
||||
2024-06-28 11:36:24,181 utils.py[line:84] - ERROR - 数据接收失败,错误原因: (109, 'ReadFile', '管道已结束。')
|
||||
2024-06-28 11:51:27,970 utils.py[line:227] - ERROR - 发送指令失败,错误类型:(232, 'WriteFile', '管道正在被关闭。')
|
||||
2024-06-28 11:51:27,971 main.py[line:82] - ERROR - 处理失败
|
||||
2024-06-28 11:51:27,977 utils.py[line:84] - ERROR - 数据接收失败,错误原因: (109, 'ReadFile', '管道已结束。')
|
||||
2024-06-28 11:55:18,328 utils.py[line:84] - ERROR - 数据接收失败,错误原因: (109, 'ReadFile', '管道已结束。')
|
||||
2024-06-28 11:59:41,747 utils.py[line:84] - ERROR - 数据接收失败,错误原因: (109, 'ReadFile', '管道已结束。')
|
||||
2024-06-28 12:03:47,921 utils.py[line:227] - ERROR - 发送指令失败,错误类型:(232, 'WriteFile', '管道正在被关闭。')
|
||||
2024-06-28 12:03:47,922 main.py[line:82] - ERROR - 处理失败
|
||||
2024-06-28 12:03:47,922 utils.py[line:84] - ERROR - 数据接收失败,错误原因: (109, 'ReadFile', '管道已结束。')
|
||||
2024-06-28 12:06:28,421 utils.py[line:84] - ERROR - 数据接收失败,错误原因: (109, 'ReadFile', '管道已结束。')
|
||||
2024-06-28 12:12:04,287 utils.py[line:84] - ERROR - 数据接收失败,错误原因: (109, 'ReadFile', '管道已结束。')
|
||||
2024-06-28 12:14:07,667 utils.py[line:84] - ERROR - 数据接收失败,错误原因: (109, 'ReadFile', '管道已结束。')
|
||||
2024-06-28 12:15:23,671 utils.py[line:101] - ERROR - 数据接收失败,错误原因: (109, 'ReadFile', '管道已结束。')
|
||||
2024-06-28 12:17:16,305 utils.py[line:84] - ERROR - 数据接收失败,错误原因: (109, 'ReadFile', '管道已结束。')
|
||||
2024-06-28 12:18:43,577 utils.py[line:84] - ERROR - 数据接收失败,错误原因: (109, 'ReadFile', '管道已结束。')
|
||||
2024-06-28 12:20:46,118 utils.py[line:84] - ERROR - 数据接收失败,错误原因: (109, 'ReadFile', '管道已结束。')
|
||||
2024-06-28 12:22:39,747 utils.py[line:84] - ERROR - 数据接收失败,错误原因: (109, 'ReadFile', '管道已结束。')
|
||||
2024-06-28 12:26:07,385 utils.py[line:84] - ERROR - 数据接收失败,错误原因: (109, 'ReadFile', '管道已结束。')
|
||||
2024-06-28 14:52:26,065 utils.py[line:101] - ERROR - 数据接收失败,错误原因: (109, 'ReadFile', '管道已结束。')
|
||||
2024-06-28 14:55:54,058 utils.py[line:84] - ERROR - 数据接收失败,错误原因: (109, 'ReadFile', '管道已结束。')
|
||||
2024-06-28 14:56:51,979 utils.py[line:84] - ERROR - 数据接收失败,错误原因: (109, 'ReadFile', '管道已结束。')
|
||||
2024-06-28 15:18:10,133 utils.py[line:84] - ERROR - 数据接收失败,错误原因: (109, 'ReadFile', '管道已结束。')
|
||||
2024-06-28 15:20:59,777 utils.py[line:84] - ERROR - 数据接收失败,错误原因: (109, 'ReadFile', '管道已结束。')
|
||||
2024-06-28 15:23:38,138 utils.py[line:84] - ERROR - 数据接收失败,错误原因: (109, 'ReadFile', '管道已结束。')
|
||||
2024-06-28 15:31:44,479 utils.py[line:84] - ERROR - 数据接收失败,错误原因: (109, 'ReadFile', '管道已结束。')
|
||||
2024-06-28 15:48:30,938 utils.py[line:84] - ERROR - 数据接收失败,错误原因: (109, 'ReadFile', '管道已结束。')
|
||||
2024-06-28 16:03:04,564 utils.py[line:84] - ERROR - 数据接收失败,错误原因: (109, 'ReadFile', '管道已结束。')
|
||||
2024-06-28 16:07:31,464 utils.py[line:84] - ERROR - 数据接收失败,错误原因: (109, 'ReadFile', '管道已结束。')
|
||||
2024-06-28 16:25:01,278 utils.py[line:84] - ERROR - 数据接收失败,错误原因: (109, 'ReadFile', '管道已结束。')
|
||||
2024-06-28 16:29:57,905 utils.py[line:84] - ERROR - 数据接收失败,错误原因: (109, 'ReadFile', '管道已结束。')
|
||||
2024-06-28 16:49:10,627 utils.py[line:84] - ERROR - 数据接收失败,错误原因: (109, 'ReadFile', '管道已结束。')
|
||||
2024-06-28 16:50:30,739 utils.py[line:84] - ERROR - 数据接收失败,错误原因: (109, 'ReadFile', '管道已结束。')
|
||||
2024-06-28 16:52:40,850 utils.py[line:84] - ERROR - 数据接收失败,错误原因: (109, 'ReadFile', '管道已结束。')
|
||||
2024-06-28 17:01:43,963 utils.py[line:84] - ERROR - 数据接收失败,错误原因: (109, 'ReadFile', '管道已结束。')
|
||||
2024-06-28 17:05:56,524 utils.py[line:84] - ERROR - 数据接收失败,错误原因: (109, 'ReadFile', '管道已结束。')
|
||||
2024-06-28 17:09:33,282 utils.py[line:84] - ERROR - 数据接收失败,错误原因: (109, 'ReadFile', '管道已结束。')
|
||||
2024-06-28 17:12:01,788 utils.py[line:84] - ERROR - 数据接收失败,错误原因: (109, 'ReadFile', '管道已结束。')
|
||||
2024-06-28 17:13:27,639 utils.py[line:84] - ERROR - 数据接收失败,错误原因: (109, 'ReadFile', '管道已结束。')
|
||||
2024-06-28 17:20:43,034 utils.py[line:84] - ERROR - 数据接收失败,错误原因: (109, 'ReadFile', '管道已结束。')
|
||||
2024-06-29 15:43:42,727 utils.py[line:84] - ERROR - 数据接收失败,错误原因: (109, 'ReadFile', '管道已结束。')
|
||||
2024-06-29 15:52:02,852 utils.py[line:84] - ERROR - 数据接收失败,错误原因: (109, 'ReadFile', '管道已结束。')
|
||||
2024-06-29 16:08:30,885 utils.py[line:84] - ERROR - 数据接收失败,错误原因: (109, 'ReadFile', '管道已结束。')
|
||||
2024-06-29 16:21:17,909 utils.py[line:84] - ERROR - 数据接收失败,错误原因: (109, 'ReadFile', '管道已结束。')
|
||||
2024-06-29 16:31:42,830 utils.py[line:227] - ERROR - 发送指令失败,错误类型:(232, 'WriteFile', '管道正在被关闭。')
|
||||
2024-06-29 16:31:42,831 main.py[line:92] - ERROR - 处理失败
|
||||
2024-06-29 16:31:42,831 utils.py[line:84] - ERROR - 数据接收失败,错误原因: (109, 'ReadFile', '管道已结束。')
|
||||
2024-06-29 16:35:42,748 utils.py[line:84] - ERROR - 数据接收失败,错误原因: (109, 'ReadFile', '管道已结束。')
|
||||
2024-06-29 16:44:57,631 utils.py[line:84] - ERROR - 数据接收失败,错误原因: (109, 'ReadFile', '管道已结束。')
|
||||
2024-06-29 16:49:04,069 utils.py[line:84] - ERROR - 数据接收失败,错误原因: (109, 'ReadFile', '管道已结束。')
|
||||
2024-06-29 16:53:18,366 utils.py[line:158] - ERROR - 图像指令转换失败,数据长度错误
|
||||
2024-06-29 17:17:24,471 utils.py[line:84] - ERROR - 数据接收失败,错误原因: (109, 'ReadFile', '管道已结束。')
|
||||
2024-06-29 17:44:57,312 utils.py[line:84] - ERROR - 数据接收失败,错误原因: (109, 'ReadFile', '管道已结束。')
|
||||
2024-06-29 17:48:31,343 utils.py[line:230] - ERROR - 发送指令失败,错误类型:(232, 'WriteFile', '管道正在被关闭。')
|
||||
2024-06-29 17:48:31,344 main.py[line:95] - ERROR - 处理失败
|
||||
2024-06-29 17:48:31,344 utils.py[line:84] - ERROR - 数据接收失败,错误原因: (109, 'ReadFile', '管道已结束。')
|
||||
2024-06-29 17:52:27,224 utils.py[line:84] - ERROR - 数据接收失败,错误原因: (109, 'ReadFile', '管道已结束。')
|
||||
2024-06-29 18:40:34,394 utils.py[line:230] - ERROR - 发送指令失败,错误类型:(232, 'WriteFile', '管道正在被关闭。')
|
||||
2024-06-29 18:40:34,395 main.py[line:95] - ERROR - 处理失败
|
||||
2024-06-29 18:40:34,395 utils.py[line:84] - ERROR - 数据接收失败,错误原因: (109, 'ReadFile', '管道已结束。')
|
||||
2024-06-30 12:45:15,007 utils.py[line:84] - ERROR - 数据接收失败,错误原因: (109, 'ReadFile', '管道已结束。')
|
||||
2024-06-30 12:57:37,170 utils.py[line:84] - ERROR - 数据接收失败,错误原因: (109, 'ReadFile', '管道已结束。')
|
||||
2024-06-30 13:01:35,413 utils.py[line:84] - ERROR - 数据接收失败,错误原因: (109, 'ReadFile', '管道已结束。')
|
||||
2024-06-30 14:14:42,010 utils.py[line:84] - ERROR - 数据接收失败,错误原因: (109, 'ReadFile', '管道已结束。')
|
||||
2024-06-30 14:24:06,845 utils.py[line:84] - ERROR - 数据接收失败,错误原因: (109, 'ReadFile', '管道已结束。')
|
||||
2024-06-30 14:35:07,953 utils.py[line:84] - ERROR - 数据接收失败,错误原因: (109, 'ReadFile', '管道已结束。')
|
||||
2024-07-01 15:27:37,749 utils.py[line:161] - ERROR - 图像指令转换失败,数据长度错误
|
||||
2024-07-01 16:23:59,608 utils.py[line:84] - ERROR - 数据接收失败,错误原因: (109, 'ReadFile', '管道已结束。')
|
||||
2024-07-01 16:27:39,666 utils.py[line:84] - ERROR - 数据接收失败,错误原因: (109, 'ReadFile', '管道已结束。')
|
||||
2024-07-01 16:45:20,986 utils.py[line:84] - ERROR - 数据接收失败,错误原因: (109, 'ReadFile', '管道已结束。')
|
||||
2024-07-01 16:49:36,061 utils.py[line:84] - ERROR - 数据接收失败,错误原因: (109, 'ReadFile', '管道已结束。')
|
||||
2024-07-01 16:57:25,351 utils.py[line:84] - ERROR - 数据接收失败,错误原因: (109, 'ReadFile', '管道已结束。')
|
||||
2024-07-01 17:01:32,692 utils.py[line:84] - ERROR - 数据接收失败,错误原因: (109, 'ReadFile', '管道已结束。')
|
||||
2024-07-01 17:22:45,049 utils.py[line:84] - ERROR - 数据接收失败,错误原因: (109, 'ReadFile', '管道已结束。')
|
||||
2024-07-01 17:25:23,065 utils.py[line:230] - ERROR - 发送指令失败,错误类型:(232, 'WriteFile', '管道正在被关闭。')
|
||||
2024-07-01 17:25:23,065 main.py[line:101] - ERROR - 处理失败
|
||||
2024-07-01 17:25:23,065 utils.py[line:84] - ERROR - 数据接收失败,错误原因: (109, 'ReadFile', '管道已结束。')
|
||||
2024-07-01 17:27:39,278 utils.py[line:84] - ERROR - 数据接收失败,错误原因: (109, 'ReadFile', '管道已结束。')
|
||||
2024-07-01 17:29:37,321 utils.py[line:84] - ERROR - 数据接收失败,错误原因: (109, 'ReadFile', '管道已结束。')
|
||||
2024-07-01 17:31:32,282 utils.py[line:84] - ERROR - 数据接收失败,错误原因: (109, 'ReadFile', '管道已结束。')
|
||||
2024-07-01 17:33:22,204 utils.py[line:84] - ERROR - 数据接收失败,错误原因: (109, 'ReadFile', '管道已结束。')
|
||||
2024-07-01 17:35:32,399 utils.py[line:84] - ERROR - 数据接收失败,错误原因: (109, 'ReadFile', '管道已结束。')
|
||||
2024-07-01 17:46:20,681 utils.py[line:84] - ERROR - 数据接收失败,错误原因: (109, 'ReadFile', '管道已结束。')
|
||||
2024-07-01 17:47:51,507 utils.py[line:84] - ERROR - 数据接收失败,错误原因: (109, 'ReadFile', '管道已结束。')
|
||||
2024-07-01 17:51:45,559 utils.py[line:230] - ERROR - 发送指令失败,错误类型:(232, 'WriteFile', '管道正在被关闭。')
|
||||
2024-07-01 17:51:45,559 main.py[line:101] - ERROR - 处理失败
|
||||
2024-07-01 17:51:45,560 utils.py[line:84] - ERROR - 数据接收失败,错误原因: (109, 'ReadFile', '管道已结束。')
|
||||
2024-07-04 14:08:48,265 pipe_utils.py[line:231] - ERROR - 发送指令失败,错误类型:(232, 'WriteFile', '管道正在被关闭。')
|
||||
2024-07-04 14:08:48,265 main.py[line:108] - ERROR - 处理失败
|
||||
2024-07-04 14:08:49,453 pipe_utils.py[line:231] - ERROR - 发送指令失败,错误类型:(232, 'WriteFile', '管道正在被关闭。')
|
||||
2024-07-04 14:08:49,453 main.py[line:108] - ERROR - 处理失败
|
||||
2024-07-04 14:08:50,744 pipe_utils.py[line:231] - ERROR - 发送指令失败,错误类型:(232, 'WriteFile', '管道正在被关闭。')
|
||||
2024-07-04 14:08:50,744 main.py[line:108] - ERROR - 处理失败
|
||||
2024-07-04 14:08:50,744 pipe_utils.py[line:85] - ERROR - 数据接收失败,错误原因: (109, 'ReadFile', '管道已结束。')
|
||||
2024-07-04 14:27:19,068 pipe_utils.py[line:85] - ERROR - 数据接收失败,错误原因: (109, 'ReadFile', '管道已结束。')
|
||||
2024-07-04 16:41:47,465 pipe_utils.py[line:85] - ERROR - 数据接收失败,错误原因: (109, 'ReadFile', '管道已结束。')
|
||||
2024-07-04 16:45:24,931 pipe_utils.py[line:85] - ERROR - 数据接收失败,错误原因: (109, 'ReadFile', '管道已结束。')
|
||||
2024-07-04 16:49:02,620 pipe_utils.py[line:85] - ERROR - 数据接收失败,错误原因: (109, 'ReadFile', '管道已结束。')
|
||||
2024-07-04 16:51:48,679 pipe_utils.py[line:85] - ERROR - 数据接收失败,错误原因: (109, 'ReadFile', '管道已结束。')
|
||||
2024-07-04 16:53:58,252 pipe_utils.py[line:85] - ERROR - 数据接收失败,错误原因: (109, 'ReadFile', '管道已结束。')
|
||||
2024-07-04 17:00:49,493 pipe_utils.py[line:85] - ERROR - 数据接收失败,错误原因: (109, 'ReadFile', '管道已结束。')
|
||||
2024-07-04 17:08:10,792 pipe_utils.py[line:231] - ERROR - 发送指令失败,错误类型:(232, 'WriteFile', '管道正在被关闭。')
|
||||
2024-07-04 17:08:10,793 main.py[line:110] - ERROR - 处理失败
|
||||
2024-07-04 17:08:12,041 pipe_utils.py[line:231] - ERROR - 发送指令失败,错误类型:(232, 'WriteFile', '管道正在被关闭。')
|
||||
2024-07-04 17:08:12,042 main.py[line:110] - ERROR - 处理失败
|
||||
2024-07-04 17:08:13,179 pipe_utils.py[line:231] - ERROR - 发送指令失败,错误类型:(232, 'WriteFile', '管道正在被关闭。')
|
||||
2024-07-04 17:08:13,179 main.py[line:110] - ERROR - 处理失败
|
||||
2024-07-04 17:08:14,424 pipe_utils.py[line:231] - ERROR - 发送指令失败,错误类型:(232, 'WriteFile', '管道正在被关闭。')
|
||||
2024-07-04 17:08:14,425 main.py[line:110] - ERROR - 处理失败
|
||||
2024-07-04 17:08:15,606 pipe_utils.py[line:231] - ERROR - 发送指令失败,错误类型:(232, 'WriteFile', '管道正在被关闭。')
|
||||
2024-07-04 17:08:15,606 main.py[line:110] - ERROR - 处理失败
|
||||
2024-07-04 17:08:16,934 pipe_utils.py[line:231] - ERROR - 发送指令失败,错误类型:(232, 'WriteFile', '管道正在被关闭。')
|
||||
2024-07-04 17:08:16,934 main.py[line:110] - ERROR - 处理失败
|
||||
2024-07-04 17:08:18,134 pipe_utils.py[line:231] - ERROR - 发送指令失败,错误类型:(232, 'WriteFile', '管道正在被关闭。')
|
||||
2024-07-04 17:08:18,134 main.py[line:110] - ERROR - 处理失败
|
||||
2024-07-04 17:08:19,383 pipe_utils.py[line:231] - ERROR - 发送指令失败,错误类型:(232, 'WriteFile', '管道正在被关闭。')
|
||||
2024-07-04 17:08:19,383 main.py[line:110] - ERROR - 处理失败
|
||||
2024-07-04 17:08:20,639 pipe_utils.py[line:231] - ERROR - 发送指令失败,错误类型:(232, 'WriteFile', '管道正在被关闭。')
|
||||
2024-07-04 17:08:20,639 main.py[line:110] - ERROR - 处理失败
|
||||
2024-07-04 17:08:21,809 pipe_utils.py[line:231] - ERROR - 发送指令失败,错误类型:(232, 'WriteFile', '管道正在被关闭。')
|
||||
2024-07-04 17:08:21,809 main.py[line:110] - ERROR - 处理失败
|
||||
2024-07-04 17:08:21,810 pipe_utils.py[line:85] - ERROR - 数据接收失败,错误原因: (109, 'ReadFile', '管道已结束。')
|
||||
2024-07-04 17:18:14,994 pipe_utils.py[line:85] - ERROR - 数据接收失败,错误原因: (109, 'ReadFile', '管道已结束。')
|
||||
2024-07-04 17:20:39,388 pipe_utils.py[line:231] - ERROR - 发送指令失败,错误类型:(232, 'WriteFile', '管道正在被关闭。')
|
||||
2024-07-04 17:20:39,388 main.py[line:110] - ERROR - 处理失败
|
||||
2024-07-04 17:20:40,562 pipe_utils.py[line:231] - ERROR - 发送指令失败,错误类型:(232, 'WriteFile', '管道正在被关闭。')
|
||||
2024-07-04 17:20:40,563 main.py[line:110] - ERROR - 处理失败
|
||||
2024-07-04 17:20:41,738 pipe_utils.py[line:231] - ERROR - 发送指令失败,错误类型:(232, 'WriteFile', '管道正在被关闭。')
|
||||
2024-07-04 17:20:41,738 main.py[line:110] - ERROR - 处理失败
|
||||
2024-07-04 17:20:43,017 pipe_utils.py[line:231] - ERROR - 发送指令失败,错误类型:(232, 'WriteFile', '管道正在被关闭。')
|
||||
2024-07-04 17:20:43,017 main.py[line:110] - ERROR - 处理失败
|
||||
2024-07-04 17:20:44,275 pipe_utils.py[line:231] - ERROR - 发送指令失败,错误类型:(232, 'WriteFile', '管道正在被关闭。')
|
||||
2024-07-04 17:20:44,275 main.py[line:110] - ERROR - 处理失败
|
||||
2024-07-04 17:20:45,548 pipe_utils.py[line:231] - ERROR - 发送指令失败,错误类型:(232, 'WriteFile', '管道正在被关闭。')
|
||||
2024-07-04 17:20:45,548 main.py[line:110] - ERROR - 处理失败
|
||||
2024-07-04 17:20:46,743 pipe_utils.py[line:231] - ERROR - 发送指令失败,错误类型:(232, 'WriteFile', '管道正在被关闭。')
|
||||
2024-07-04 17:20:46,743 main.py[line:110] - ERROR - 处理失败
|
||||
2024-07-04 17:20:47,987 pipe_utils.py[line:231] - ERROR - 发送指令失败,错误类型:(232, 'WriteFile', '管道正在被关闭。')
|
||||
2024-07-04 17:20:47,987 main.py[line:110] - ERROR - 处理失败
|
||||
2024-07-04 17:20:49,183 pipe_utils.py[line:231] - ERROR - 发送指令失败,错误类型:(232, 'WriteFile', '管道正在被关闭。')
|
||||
2024-07-04 17:20:49,183 main.py[line:110] - ERROR - 处理失败
|
||||
2024-07-04 17:20:50,393 pipe_utils.py[line:231] - ERROR - 发送指令失败,错误类型:(232, 'WriteFile', '管道正在被关闭。')
|
||||
2024-07-04 17:20:50,394 main.py[line:110] - ERROR - 处理失败
|
||||
2024-07-04 17:20:51,724 pipe_utils.py[line:231] - ERROR - 发送指令失败,错误类型:(232, 'WriteFile', '管道正在被关闭。')
|
||||
2024-07-04 17:20:51,724 main.py[line:110] - ERROR - 处理失败
|
||||
2024-07-04 17:20:52,901 pipe_utils.py[line:231] - ERROR - 发送指令失败,错误类型:(232, 'WriteFile', '管道正在被关闭。')
|
||||
2024-07-04 17:20:52,901 main.py[line:110] - ERROR - 处理失败
|
||||
2024-07-04 17:20:54,161 pipe_utils.py[line:231] - ERROR - 发送指令失败,错误类型:(232, 'WriteFile', '管道正在被关闭。')
|
||||
2024-07-04 17:20:54,161 main.py[line:110] - ERROR - 处理失败
|
||||
2024-07-04 17:20:55,332 pipe_utils.py[line:231] - ERROR - 发送指令失败,错误类型:(232, 'WriteFile', '管道正在被关闭。')
|
||||
2024-07-04 17:20:55,333 main.py[line:110] - ERROR - 处理失败
|
||||
2024-07-04 17:20:56,561 pipe_utils.py[line:231] - ERROR - 发送指令失败,错误类型:(232, 'WriteFile', '管道正在被关闭。')
|
||||
2024-07-04 17:20:56,561 main.py[line:110] - ERROR - 处理失败
|
||||
2024-07-04 17:20:56,561 pipe_utils.py[line:85] - ERROR - 数据接收失败,错误原因: (109, 'ReadFile', '管道已结束。')
|
||||
2024-07-05 14:23:17,274 pipe_utils.py[line:85] - ERROR - 数据接收失败,错误原因: (109, 'ReadFile', '管道已结束。')
|
||||
2024-07-05 14:52:48,462 pipe_utils.py[line:85] - ERROR - 数据接收失败,错误原因: (109, 'ReadFile', '管道已结束。')
|
||||
2024-07-05 14:59:25,432 pipe_utils.py[line:231] - ERROR - 发送指令失败,错误类型:(232, 'WriteFile', '管道正在被关闭。')
|
||||
2024-07-05 14:59:25,433 main.py[line:110] - ERROR - 处理失败
|
||||
2024-07-05 14:59:25,433 pipe_utils.py[line:85] - ERROR - 数据接收失败,错误原因: (109, 'ReadFile', '管道已结束。')
|
||||
2024-07-05 15:21:42,677 pipe_utils.py[line:85] - ERROR - 数据接收失败,错误原因: (109, 'ReadFile', '管道已结束。')
|
||||
2024-07-07 16:11:16,751 pipe_utils.py[line:231] - ERROR - 发送指令失败,错误类型:(232, 'WriteFile', '管道正在被关闭。')
|
||||
2024-07-07 16:11:16,752 main.py[line:125] - ERROR - 处理失败
|
||||
2024-07-07 16:11:16,752 pipe_utils.py[line:85] - ERROR - 数据接收失败,错误原因: (109, 'ReadFile', '管道已结束。')
|
||||
2024-07-07 16:25:38,533 pipe_utils.py[line:85] - ERROR - 数据接收失败,错误原因: (109, 'ReadFile', '管道已结束。')
|
||||
2024-07-07 16:34:38,764 pipe_utils.py[line:85] - ERROR - 数据接收失败,错误原因: (109, 'ReadFile', '管道已结束。')
|
||||
@ -1,45 +0,0 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
# @Time : 2024/7/7 下午4:33
|
||||
# @Author : TG
|
||||
# @File : totest.py
|
||||
# @Software: PyCharm
|
||||
import time
|
||||
|
||||
from detector import Detector_to
|
||||
import numpy as np
|
||||
|
||||
import os
|
||||
from PIL import Image
|
||||
|
||||
|
||||
|
||||
|
||||
def main():
|
||||
s = []
|
||||
path = r'D:\project\20240627Actual_deployed\to'
|
||||
to = Detector_to()
|
||||
i = 1
|
||||
for filename in os.listdir(path):
|
||||
if filename.endswith('.bmp'):
|
||||
img_path = os.path.join(path, filename)
|
||||
image = Image.open(img_path)
|
||||
img = np.array(image)
|
||||
t = time.time()
|
||||
result = to.run(img)
|
||||
e = time.time()
|
||||
print(f'第{i}张图时间:{e-t}')
|
||||
print(f'图片名:{filename},结果:{result}')
|
||||
s.append(result)
|
||||
i += 1
|
||||
print(f'长度:{sum(s)}')
|
||||
|
||||
|
||||
#0为褶皱,1为正常
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
'''
|
||||
python与qt采用windows下的命名管道进行通信,数据流按照约定的通信协议进行
|
||||
数据处理逻辑为:连续接收5张RGB图,然后根据解析出的指令部分决定是否接收一张光谱图,然后进行处理,最后将处理得到的指标结果进行编码回传
|
||||
'''
|
||||
main()
|
||||
71
20240627test4/20240711lab.py
Normal file
71
20240627test4/20240711lab.py
Normal file
@ -0,0 +1,71 @@
|
||||
import cv2
|
||||
import numpy as np
|
||||
import os
|
||||
|
||||
# 读取文件夹中的所有图片文件
|
||||
def read_images_from_folder(folder):
|
||||
images = []
|
||||
for filename in os.listdir(folder):
|
||||
img = cv2.imread(os.path.join(folder, filename))
|
||||
if img is not None:
|
||||
images.append((filename, img))
|
||||
return images
|
||||
|
||||
# Lab颜色空间的a阈值分割,同时处理灰度值大于190的像素
|
||||
def threshold_lab_a_and_high_gray(image, lower_threshold=0, upper_threshold=20):
|
||||
lab_image = cv2.cvtColor(image, cv2.COLOR_BGR2Lab)
|
||||
_, a, _ = cv2.split(lab_image)
|
||||
|
||||
# 创建一个与a通道相同大小的黑色图像
|
||||
binary_image = np.zeros_like(a)
|
||||
|
||||
# 将a通道中值在指定范围内的像素设置为白色(255)
|
||||
binary_image[(a >= lower_threshold) & (a <= upper_threshold)] = 255
|
||||
|
||||
# 为灰度值大于190的像素创建二值图
|
||||
gray_image = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)
|
||||
high_gray_image = np.zeros_like(gray_image)
|
||||
high_gray_image[gray_image > 170] = 255
|
||||
|
||||
# 从a通道阈值图中移除灰度值大于190的像素
|
||||
final_image = cv2.bitwise_and(binary_image, binary_image, mask=np.bitwise_not(high_gray_image))
|
||||
|
||||
return binary_image, high_gray_image, final_image
|
||||
|
||||
# 拼接并显示所有图片
|
||||
def concatenate_images(original, images, filename, scale=0.5):
|
||||
# 将所有单通道图像转换为三通道图像
|
||||
resized_imgs = []
|
||||
for img in images:
|
||||
if len(img.shape) == 2: # 单通道图像
|
||||
img = cv2.cvtColor(img, cv2.COLOR_GRAY2BGR)
|
||||
# 缩放图像
|
||||
img = cv2.resize(img, (int(img.shape[1] * scale), int(img.shape[0] * scale)))
|
||||
resized_imgs.append(img)
|
||||
|
||||
# 将原图也转换为相同大小和缩放
|
||||
resized_original = cv2.resize(original, (int(original.shape[1] * scale), int(original.shape[0] * scale)))
|
||||
|
||||
# 水平拼接第一行和第二行
|
||||
top_row = cv2.hconcat([resized_original, resized_imgs[0]])
|
||||
bottom_row = cv2.hconcat([resized_imgs[1], resized_imgs[2]])
|
||||
|
||||
# 垂直拼接所有行
|
||||
final_image = cv2.vconcat([top_row, bottom_row])
|
||||
|
||||
# 显示图片
|
||||
cv2.imshow(f"Combined Images - {filename}", final_image)
|
||||
cv2.waitKey(0)
|
||||
cv2.destroyAllWindows()
|
||||
|
||||
def main():
|
||||
folder = r'F:\images' # 替换为你的文件夹路径
|
||||
images = read_images_from_folder(folder)
|
||||
|
||||
for filename, image in images:
|
||||
lab_thresh, high_gray, final_image = threshold_lab_a_and_high_gray(image, lower_threshold=115, upper_threshold=135)
|
||||
concatenate_images(image, [lab_thresh, high_gray, final_image], filename, scale=0.5) # 添加缩放因子
|
||||
|
||||
if __name__ == "__main__":
|
||||
main()
|
||||
|
||||
@ -5,8 +5,6 @@
|
||||
# @Software: PyCharm
|
||||
|
||||
import os
|
||||
import time
|
||||
|
||||
import cv2
|
||||
import pipe_utils
|
||||
import joblib
|
||||
@ -17,6 +15,7 @@ from pipe_utils import Pipe
|
||||
from config import Config as setting
|
||||
from sklearn.ensemble import RandomForestRegressor
|
||||
from detector import Detector_to
|
||||
from to_seg import TOSEG
|
||||
|
||||
import torch
|
||||
import torch.nn as nn
|
||||
@ -229,6 +228,24 @@ class Tomato:
|
||||
img_filled = cv2.bitwise_or(new_bin_img, img_filled_inv)
|
||||
return img_filled
|
||||
|
||||
def threshold_lab_a_and_high_gray(self, image, lower_threshold=0, upper_threshold=20):
|
||||
lab_image = cv2.cvtColor(image, cv2.COLOR_BGR2Lab)
|
||||
_, a, _ = cv2.split(lab_image)
|
||||
# 创建一个与a通道相同大小的黑色图像
|
||||
binary_image = np.zeros_like(a)
|
||||
# 将a通道中值在指定范围内的像素设置为白色(255)
|
||||
binary_image[(a >= lower_threshold) & (a <= upper_threshold)] = 255
|
||||
# 为灰度值大于190的像素创建二值图
|
||||
gray_image = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)
|
||||
high_gray_image = np.zeros_like(gray_image)
|
||||
high_gray_image[gray_image > 170] = 255
|
||||
# 从a通道阈值图中移除灰度值大于190的像素
|
||||
final_image = cv2.bitwise_and(binary_image, binary_image, mask=np.bitwise_not(high_gray_image))
|
||||
# 颜色反转之后,找到最大的连通区域(去除背景中的噪点干扰)
|
||||
final_image = self.largest_connected_component(cv2.bitwise_not(final_image))
|
||||
|
||||
return final_image
|
||||
|
||||
#百香果RGB处理模型
|
||||
class Passion_fruit:
|
||||
def __init__(self, hue_value=setting.hue_value, hue_delta=setting.hue_delta,
|
||||
@ -331,9 +348,9 @@ class Passion_fruit:
|
||||
upper_green = np.array([setting.high_H, setting.high_S, setting.high_V])
|
||||
# Convert the image to HSV
|
||||
hsv = cv2.cvtColor(image_rgb, cv2.COLOR_RGB2HSV)
|
||||
# Create the mask
|
||||
# Create the leaf
|
||||
mask = cv2.inRange(hsv, lower_green, upper_green)
|
||||
# Bitwise-AND mask and original image
|
||||
# Bitwise-AND leaf and original image
|
||||
res = cv2.bitwise_and(image_rgb, image_rgb, mask=mask)
|
||||
# Convert result to BGR for display
|
||||
res_bgr = cv2.cvtColor(res, cv2.COLOR_RGB2BGR)
|
||||
@ -570,6 +587,9 @@ class Data_processing:
|
||||
self.area_threshold = area_threshold
|
||||
self.density = density
|
||||
self.area_ratio = area_ratio
|
||||
self.tomato = Tomato()
|
||||
self.pf = Passion_fruit()
|
||||
self.tos = TOSEG()
|
||||
pass
|
||||
|
||||
def fill_holes(self, bin_img):
|
||||
@ -678,35 +698,47 @@ class Data_processing:
|
||||
返回:
|
||||
tuple: (长径, 短径, 缺陷区域个数, 缺陷区域总像素, 处理后的图像)
|
||||
"""
|
||||
tomato = Tomato() # 创建 Tomato 类的实例
|
||||
img = cv2.cvtColor(img,cv2.COLOR_RGB2BGR)
|
||||
s_l = tomato.extract_s_l(img)
|
||||
thresholded_s_l = tomato.threshold_segmentation(s_l, setting.threshold_s_l)
|
||||
new_bin_img = tomato.largest_connected_component(thresholded_s_l)
|
||||
filled_img, defect = self.fill_holes(new_bin_img)
|
||||
# tomato = Tomato() # 创建 Tomato 类的实例
|
||||
# img0 = img.copy()
|
||||
img = cv2.cvtColor(img, cv2.COLOR_RGB2BGR)
|
||||
img0 = img.copy()
|
||||
s_l = self.tomato.extract_s_l(img)
|
||||
thresholded_s_l = self.tomato.threshold_segmentation(s_l, setting.threshold_s_l)
|
||||
new_bin_img = self.tomato.largest_connected_component(thresholded_s_l)
|
||||
#下面为20240714工控机实际运行代码,缺少两个参数传递
|
||||
# white_defect = self.tomato.threshold_lab_a_and_high_gray(img)
|
||||
white_defect = self.tomato.threshold_lab_a_and_high_gray(img, lower_threshold=115, upper_threshold=135)
|
||||
new_bin_and_white_defect_img = cv2.bitwise_and(new_bin_img, white_defect)
|
||||
filled_img, defect = self.fill_holes(new_bin_and_white_defect_img)
|
||||
# 绘制西红柿边缘并获取缺陷信息
|
||||
edge, mask = tomato.draw_tomato_edge(img, new_bin_img)
|
||||
org_defect = tomato.bitwise_and_rgb_with_binary(edge, new_bin_img)
|
||||
fore = tomato.bitwise_and_rgb_with_binary(img, mask)
|
||||
fore_g_r_t = tomato.threshold_segmentation(tomato.extract_g_r(fore), threshold=setting.threshold_fore_g_r_t)
|
||||
filled_img_nogreen = cv2.bitwise_or(filled_img, fore_g_r_t)
|
||||
res = cv2.bitwise_or(new_bin_img, fore_g_r_t)
|
||||
nogreen = tomato.bitwise_and_rgb_with_binary(edge, res)
|
||||
edge, mask = self.tomato.draw_tomato_edge(img, new_bin_and_white_defect_img)
|
||||
# org_defect = self.tomato.bitwise_and_rgb_with_binary(edge, new_bin_and_white_defect_img)
|
||||
fore = self.tomato.bitwise_and_rgb_with_binary(img, mask)
|
||||
fore_g_r_t = self.tomato.threshold_segmentation(self.tomato.extract_g_r(fore), threshold=setting.threshold_fore_g_r_t)
|
||||
# filled_img_nogreen = cv2.bitwise_or(filled_img, fore_g_r_t)
|
||||
|
||||
|
||||
safe_area = self.tos.toseg(img0)
|
||||
filled_defect = cv2.bitwise_or(filled_img, safe_area)
|
||||
|
||||
green = cv2.bitwise_or(fore_g_r_t, safe_area)
|
||||
|
||||
|
||||
res = cv2.bitwise_or(new_bin_and_white_defect_img, safe_area)
|
||||
nogreen = self.tomato.bitwise_and_rgb_with_binary(edge, res)
|
||||
# 统计白色像素点个数
|
||||
# print(np.sum(fore_g_r_t == 255))
|
||||
# print(np.sum(mask == 255))
|
||||
# print(np.sum(fore_g_r_t == 255) / np.sum(mask == 255))
|
||||
|
||||
if np.sum(mask == 255) == 0:
|
||||
green_percentage = 0
|
||||
else:
|
||||
green_percentage = np.sum(fore_g_r_t == 255) / np.sum(mask == 255)
|
||||
green_percentage = np.sum(green == 255) / np.sum(mask == 255)
|
||||
green_percentage = round(green_percentage, 2)
|
||||
# 获取西红柿的尺寸信息
|
||||
long_axis, short_axis = self.analyze_ellipse(mask)
|
||||
# 获取缺陷信息
|
||||
_, total_pixels = self.analyze_defect(filled_img_nogreen)
|
||||
_, total_pixels = self.analyze_defect(filled_defect)
|
||||
# print(filled_img.shape)
|
||||
# print(f'缺陷数量:{number_defects}; 缺陷总面积:{total_pixels}')
|
||||
# print(f'缺陷总面积:{total_pixels}')
|
||||
# cv2.imwrite('filled_img.jpg',filled_img)
|
||||
# 将处理后的图像转换为 RGB 格式
|
||||
rp = cv2.cvtColor(nogreen, cv2.COLOR_BGR2RGB)
|
||||
@ -722,7 +754,15 @@ class Data_processing:
|
||||
# total_pixels = 0
|
||||
# rp = cv2.cvtColor(np.ones((setting.n_rgb_rows, setting.n_rgb_cols, setting.n_rgb_bands),
|
||||
# dtype=np.uint8), cv2.COLOR_BGR2RGB)
|
||||
return diameter, green_percentage, total_pixels, rp
|
||||
|
||||
white_defect = cv2.cvtColor(white_defect, cv2.COLOR_GRAY2RGB)
|
||||
new_bin_img = cv2.cvtColor(new_bin_img, cv2.COLOR_GRAY2RGB)
|
||||
new_bin_and_white_defect_img = cv2.cvtColor(new_bin_and_white_defect_img, cv2.COLOR_GRAY2RGB)
|
||||
filled_img = cv2.cvtColor(filled_img, cv2.COLOR_GRAY2RGB)
|
||||
safe_area = cv2.cvtColor(safe_area, cv2.COLOR_GRAY2RGB)
|
||||
filled_defect = cv2.cvtColor(filled_defect, cv2.COLOR_GRAY2RGB)
|
||||
|
||||
return diameter, green_percentage, total_pixels, rp, white_defect, new_bin_img, new_bin_and_white_defect_img, filled_img, safe_area, filled_defect
|
||||
|
||||
def analyze_passion_fruit(self, img):
|
||||
if img is None:
|
||||
@ -730,18 +770,18 @@ class Data_processing:
|
||||
return None
|
||||
|
||||
# 创建PassionFruit类的实例
|
||||
pf = Passion_fruit()
|
||||
# pf = Passion_fruit()
|
||||
|
||||
img = cv2.cvtColor(img,cv2.COLOR_RGB2BGR)
|
||||
hsv_image = cv2.cvtColor(img, cv2.COLOR_BGR2HSV)
|
||||
combined_mask = pf.create_mask(hsv_image)
|
||||
combined_mask = pf.apply_morphology(combined_mask)
|
||||
max_mask = pf.find_largest_component(combined_mask)
|
||||
combined_mask = self.pf.create_mask(hsv_image)
|
||||
combined_mask = self.pf.apply_morphology(combined_mask)
|
||||
max_mask = self.pf.find_largest_component(combined_mask)
|
||||
filled_img, defect = self.fill_holes(max_mask)
|
||||
contour_mask = self.contour_process(max_mask)
|
||||
fore = pf.bitwise_and_rgb_with_binary(img, contour_mask)
|
||||
mask = pf.extract_green_pixels_cv(fore)
|
||||
green_img = pf.pixel_comparison(defect, mask)
|
||||
fore = self.pf.bitwise_and_rgb_with_binary(img, contour_mask)
|
||||
mask = self.pf.extract_green_pixels_cv(fore)
|
||||
green_img = self.pf.pixel_comparison(defect, mask)
|
||||
if np.sum(contour_mask == 255) == 0:
|
||||
green_percentage = 0
|
||||
else:
|
||||
@ -758,8 +798,8 @@ class Data_processing:
|
||||
|
||||
_, total_pixels = self.analyze_defect(filled_img)
|
||||
# img1 = img.copy()
|
||||
edge = pf.draw_contours_on_image(img, contour_mask)
|
||||
org_defect = pf.bitwise_and_rgb_with_binary(edge, max_mask)
|
||||
edge = self.pf.draw_contours_on_image(img, contour_mask)
|
||||
org_defect = self.pf.bitwise_and_rgb_with_binary(edge, max_mask)
|
||||
rp = cv2.cvtColor(org_defect, cv2.COLOR_BGR2RGB)
|
||||
#直径单位为cm
|
||||
# diameter = (long_axis + short_axis) * setting.pixel_length_ratio / 2
|
||||
@ -775,8 +815,8 @@ class Data_processing:
|
||||
# dtype=np.uint8), cv2.COLOR_BGR2RGB)
|
||||
return diameter, green_percentage, weight, total_pixels, rp
|
||||
|
||||
def process_data(seif, cmd: str, images: list, spec: any, pipe: Pipe,
|
||||
detector: Spec_predict, to: Detector_to, impf: ImageClassifier) -> bool:
|
||||
def process_data(seif, cmd: str, images: list, spec: any, pipe: Pipe, detector: Spec_predict,
|
||||
to: Detector_to, impf: ImageClassifier, q) -> bool:
|
||||
"""
|
||||
处理指令
|
||||
|
||||
@ -795,12 +835,17 @@ class Data_processing:
|
||||
for i, img in enumerate(images):
|
||||
if cmd == 'TO':
|
||||
# 番茄
|
||||
diameter, green_percentage, total_pixels, rp = seif.analyze_tomato(img)
|
||||
ss = time.time()
|
||||
diameter, green_percentage, total_pixels, rp, white_defect, new_bin_img, new_bin_and_white_defect_img, filled_img, safe_area, filled_defect = seif.analyze_tomato(img)
|
||||
posun_num = to.run(img)
|
||||
es = time.time()
|
||||
print(f'破损判断时间:{es-ss}')
|
||||
print(f'破损判断:{posun_num}')
|
||||
cv2.imwrite(f'./testimg_result/{q}_{i+1}_white_defect.png', white_defect)
|
||||
cv2.imwrite(f'./testimg_result/{q}_{i+1}_new_bin_img.png', new_bin_img)
|
||||
cv2.imwrite(f'./testimg_result/{q}_{i+1}_white_defect.png', new_bin_and_white_defect_img)
|
||||
cv2.imwrite(f'./testimg_result/{q}_{i+1}_filled_img.png', filled_img)
|
||||
cv2.imwrite(f'./testimg_result/{q}_{i+1}_filled_defect.png', filled_defect)
|
||||
cv2.imwrite(f'./testimg_result/{q}_{i+1}_safe_area.png', safe_area)
|
||||
cv2.imwrite(f'./testimg_result/{q}_{i+1}_nogreen.png', cv2.cvtColor(rp, cv2.COLOR_RGB2BGR))
|
||||
cv2.imwrite(f'./testimg_result/{q}_{i+1}_img.png', cv2.cvtColor(img, cv2.COLOR_RGB2BGR))
|
||||
# print(f'破损判断:{posun_num}')
|
||||
if i <= 2:
|
||||
diameter_axis_list.append(diameter)
|
||||
ps.append(posun_num)
|
||||
@ -841,8 +886,8 @@ class Data_processing:
|
||||
max_total_defect_area = 0
|
||||
rp_result = cv2.cvtColor(np.ones((setting.n_rgb_rows, setting.n_rgb_cols, setting.n_rgb_bands),
|
||||
dtype=np.uint8), cv2.COLOR_BGR2RGB)
|
||||
print(f'预测的brix值为:{brix}; 预测的直径为:{diameter}; 预测的重量为:{weight}; 预测的绿色比例为:{gp};'
|
||||
f' 破损判别结果为:{ps_sum}; 预测的总缺陷面积为:{max_total_defect_area};')
|
||||
# print(f'预测的brix值为:{brix}; 预测的直径为:{diameter}; 预测的重量为:{weight}; 预测的绿色比例为:{gp};'
|
||||
# f' 破损判别结果为:{ps_sum}; 预测的总缺陷面积为:{max_total_defect_area};')
|
||||
response = pipe.send_data(cmd=cmd, brix=brix, diameter=diameter, green_percentage=gp, weight=weight,
|
||||
defect_num=ps_sum, total_defect_area=max_total_defect_area, rp=rp_result)
|
||||
return response
|
||||
@ -853,14 +898,22 @@ class Data_processing:
|
||||
diameter = 0
|
||||
gp = 0
|
||||
weight = 0
|
||||
zz_sum = 0
|
||||
zz_sum = 1
|
||||
max_total_defect_area = 0
|
||||
rp_result = cv2.cvtColor(np.ones((setting.n_rgb_rows, setting.n_rgb_cols, setting.n_rgb_bands),
|
||||
dtype=np.uint8), cv2.COLOR_BGR2RGB)
|
||||
print(f'预测的brix值为:{brix}; 预测的直径为:{diameter}; 预测的重量为:{weight}; 预测的绿色比例为:{green_percentage};'
|
||||
f' 褶皱判别结果为:{zz_sum}; 预测的总缺陷面积为:{max_total_defect_area};')
|
||||
# print(f'预测的brix值为:{brix}; 预测的直径为:{diameter}; 预测的重量为:{weight}; 预测的绿色比例为:{green_percentage};'
|
||||
# f' 褶皱判别结果为:{zz_sum}; 预测的总缺陷面积为:{max_total_defect_area};')
|
||||
response = pipe.send_data(cmd=cmd, brix=brix, green_percentage=gp, diameter=diameter, weight=weight,
|
||||
defect_num=zz_sum, total_defect_area=max_total_defect_area, rp=rp_result)
|
||||
return response
|
||||
|
||||
|
||||
# if __name__ == "__main__":
|
||||
# img = cv2.imread(r'D:\project\20240714Actual_deployed\testimg\4-10-3.bmp')
|
||||
# img = cv2.cvtColor(img, cv2.COLOR_BGR2RGB)
|
||||
# data = Data_processing()
|
||||
# diameter, green_percentage, total_pixels, rp, white_defect, new_bin_img, new_bin_and_white_defect_img, filled_img, safe_area, filled_defect = data.analyze_tomato(img)
|
||||
# cv2.imshow("area", safe_area)
|
||||
# cv2.waitKey(0)
|
||||
# cv2.destroyAllWindows()
|
||||
@ -20,8 +20,24 @@ class Config:
|
||||
imgclassifier_model_path = ROOT_DIR / 'models' / 'resnet18pf20240705.pth'
|
||||
imgclassifier_class_indices_path = ROOT_DIR / 'models' / 'class_indices.json'
|
||||
|
||||
#番茄破损模型
|
||||
tomato_model_path = ROOT_DIR / 'weights' / 'best.pt'
|
||||
#番茄初版实例分割叶片模型,实例分割叶片
|
||||
# toseg_weights = ROOT_DIR / 'weights' / 'raw_seg_best.pt'
|
||||
|
||||
#20240711番茄新版实例分割模型,实例分割叶片、果蒂、果脐处
|
||||
toseg_weights = ROOT_DIR / 'weights' / '20240711_seg_best.pt'
|
||||
|
||||
|
||||
|
||||
|
||||
#番茄初版裂口目标检测模型,原始包含刀划伤的模型
|
||||
# toobj_path = ROOT_DIR / 'weights' / 'raw_obj_best.pt'
|
||||
|
||||
#20240711番茄新版裂口目标检测模型,去除刀划伤的模型
|
||||
# toobj_path = ROOT_DIR / 'weights' / '20240711_obj_best.pt'
|
||||
|
||||
#20240712番茄新版裂口目标检测模型,去除刀划伤的模型,新增加坑状破损样本
|
||||
toobj_path = ROOT_DIR / 'weights' / '20240712_obj_best.pt'
|
||||
|
||||
|
||||
#classifer.py参数
|
||||
#tomato
|
||||
27
20240627test4/data_processing/imgcopy.py
Normal file
27
20240627test4/data_processing/imgcopy.py
Normal file
@ -0,0 +1,27 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
# @Time : 2024/7/14 下午5:11
|
||||
# @Author : TG
|
||||
# @File : imgcopy.py
|
||||
# @Software: PyCharm
|
||||
import os
|
||||
import shutil
|
||||
|
||||
def copy_images_recursively(source_folder, target_folder):
|
||||
# 遍历源文件夹中的所有内容
|
||||
for item in os.listdir(source_folder):
|
||||
item_path = os.path.join(source_folder, item)
|
||||
if os.path.isdir(item_path):
|
||||
# 如果是文件夹,递归调用当前函数
|
||||
copy_images_recursively(item_path, target_folder)
|
||||
elif item.lower().endswith(('.png', '.jpg', '.jpeg', '.bmp', '.gif')):
|
||||
# 如果是图片文件,则复制到目标文件夹
|
||||
shutil.copy(item_path, target_folder)
|
||||
print(f"Copied {item_path} to {target_folder}")
|
||||
|
||||
# 源文件夹路径
|
||||
source_folder = r'D:\project\20240714Actual_deployed\20240718test\T'
|
||||
# 目标文件夹路径
|
||||
target_folder = r'D:\project\20240714Actual_deployed\20240718test\01img'
|
||||
|
||||
# 调用函数
|
||||
copy_images_recursively(source_folder, target_folder)
|
||||
34
20240627test4/data_processing/name.py
Normal file
34
20240627test4/data_processing/name.py
Normal file
@ -0,0 +1,34 @@
|
||||
import os
|
||||
import re
|
||||
|
||||
def natural_sort_key(s):
|
||||
"""提取文本中的数字作为排序键"""
|
||||
return [int(text) if text.isdigit() else text.lower() for text in re.split('(\d+)', s)]
|
||||
|
||||
def rename_bmp_images(folder_path, prefix, suffix):
|
||||
# 获取文件夹中的所有文件
|
||||
files = os.listdir(folder_path)
|
||||
# 过滤出BMP图像文件并进行自然排序
|
||||
bmp_files = sorted([f for f in files if f.lower().endswith('.bmp')], key=natural_sort_key)
|
||||
|
||||
# 对每个BMP图像文件进行重命名
|
||||
for index, bmp_file in enumerate(bmp_files):
|
||||
old_path = os.path.join(folder_path, bmp_file)
|
||||
# 格式化新文件名,例如:1-1-1.bmp, 1-2-1.bmp, ...
|
||||
new_name = f"{prefix}-{index + 1}-{suffix}.bmp"
|
||||
new_path = os.path.join(folder_path, new_name)
|
||||
|
||||
# 重命名文件
|
||||
os.rename(old_path, new_path)
|
||||
print(f'Renamed {old_path} to {new_path}')
|
||||
|
||||
# 指定文件夹路径
|
||||
folder_path = r'D:\project\20240714Actual_deployed\20240718test\T\bottom'
|
||||
folder_path1 = r'D:\project\20240714Actual_deployed\20240718test\T\middle'
|
||||
folder_path2 = r'D:\project\20240714Actual_deployed\20240718test\T\top'
|
||||
|
||||
num = '1'
|
||||
# 调用函数进行重命名
|
||||
rename_bmp_images(folder_path, prefix=num, suffix='1')
|
||||
rename_bmp_images(folder_path1, prefix=num, suffix='2')
|
||||
rename_bmp_images(folder_path2, prefix=num, suffix='3')
|
||||
@ -15,14 +15,14 @@ from utils.dataloaders import letterbox
|
||||
from config import Config as setting
|
||||
|
||||
class Detector_to:
|
||||
def __init__(self, weights=Path(setting.tomato_model_path),
|
||||
def __init__(self, weights=Path(setting.toobj_path),
|
||||
device="", half=False):
|
||||
self.device = select_device(device)
|
||||
self.model = DetectMultiBackend(weights, device=self.device, fp16=half)
|
||||
self.stride = int(self.model.stride) # get stride from the model
|
||||
self.fp16 = half
|
||||
|
||||
def run(self, img, imgsz=(640, 640), conf_thres=0.25, iou_thres=0.45, max_det=1000):
|
||||
def run(self, img, imgsz=(640, 640), conf_thres=0.45, iou_thres=0.45, max_det=1000):
|
||||
"""Runs YOLOv5 detection inference on a numpy array and returns the number of detections."""
|
||||
imgsz = check_img_size(imgsz, s=self.stride) # check image size
|
||||
|
||||
@ -17,7 +17,8 @@ import numpy as np
|
||||
from config import Config
|
||||
import time
|
||||
from detector import Detector_to
|
||||
# from clspredict import runcls
|
||||
from to_seg import TOSEG
|
||||
|
||||
|
||||
def main(is_debug=False):
|
||||
setting = Config()
|
||||
@ -33,24 +34,18 @@ def main(is_debug=False):
|
||||
detector.load(path=setting.brix_model_path)
|
||||
dp = Data_processing()
|
||||
to = Detector_to()
|
||||
tos = TOSEG()
|
||||
#impf为百香果褶皱判别模型,0为褶皱,1为正常
|
||||
impf = ImageClassifier(model_path=setting.imgclassifier_model_path,
|
||||
class_indices_path=setting.imgclassifier_class_indices_path)
|
||||
print('系统初始化中...')
|
||||
#模型预热
|
||||
hh = time.time()
|
||||
#与qt_test测试时需要注释掉预热,模型接收尺寸为(25,30,13),qt_test发送的数据为(30,30,224),需要对数据进行切片(classifer.py第379行)
|
||||
_ = detector.predict(np.ones((setting.n_spec_rows, setting.n_spec_cols, setting.n_spec_bands), dtype=np.uint16))
|
||||
hk = time.time()
|
||||
print(f'brix模型预热时间:{hk-hh}')
|
||||
#run函数为番茄破损判别模型,返回0表示无破损,1、2、3即表示1、2、3处破损
|
||||
_ = to.run(np.ones((800, 613, 3), dtype=np.uint8))
|
||||
hi = time.time()
|
||||
print(f'run模型预热时间:{hi-hk}')
|
||||
_ = tos.toseg(np.ones((800, 613, 3), dtype=np.uint8))
|
||||
_ = impf.predict(np.ones((800, 613, 3), dtype=np.uint8))
|
||||
gg = time.time()
|
||||
print(f'impf模型预热时间:{gg-hi}')
|
||||
|
||||
time.sleep(1)
|
||||
print('系统初始化完成')
|
||||
|
||||
@ -70,23 +65,23 @@ def main(is_debug=False):
|
||||
#主循环
|
||||
q = 1
|
||||
while True:
|
||||
st = time.time()
|
||||
# st = time.time()
|
||||
#RGB图像部分
|
||||
images = []
|
||||
cmd = None
|
||||
for i in range(3):
|
||||
start_time = time.time()
|
||||
# start_time = time.time()
|
||||
data = pipe.receive_rgb_data(rgb_receive)
|
||||
end_time = time.time()
|
||||
print(f'接收第{q}个果子第{i+1}张图数据时间:{end_time-start_time}')
|
||||
print(f'接收第{q}个果子第{i+1}张图数据长度:{len(data)}')
|
||||
# end_time = time.time()
|
||||
# print(f'接收第{q}个果子第{i+1}张图数据时间:{end_time-start_time}')
|
||||
# print(f'接收第{q}个果子第{i+1}张图数据长度:{len(data)}')
|
||||
cmd, img = pipe.parse_img(data)
|
||||
end_time1 = time.time()
|
||||
img = cv2.cvtColor(img, cv2.COLOR_RGB2BGR)
|
||||
print(f'解码第{q}个果子第{i + 1}张图数据时间:{end_time1 - end_time}')
|
||||
print(f'接收第{q}个果子第{i+1}张图:{img.shape}')
|
||||
# end_time1 = time.time()
|
||||
# img = cv2.cvtColor(img, cv2.COLOR_RGB2BGR)
|
||||
# print(f'解码第{q}个果子第{i + 1}张图数据时间:{end_time1 - end_time}')
|
||||
# print(f'接收第{q}个果子第{i+1}张图:{img.shape}')
|
||||
# cv2.imwrite(f'./{q}_{i}.png', img)
|
||||
img = cv2.cvtColor(img, cv2.COLOR_BGR2RGB)
|
||||
# img = cv2.cvtColor(img, cv2.COLOR_BGR2RGB)
|
||||
|
||||
#默认全为有果
|
||||
prediction = 1
|
||||
@ -105,21 +100,13 @@ def main(is_debug=False):
|
||||
#Spec数据部分
|
||||
spec = None
|
||||
if cmd == 'PF':
|
||||
sp = time.time()
|
||||
spec_data = pipe.receive_spec_data(spec_receive)
|
||||
ep = time.time()
|
||||
print(f'接收到第{q}个果子的光谱数据时间:{ep-sp}')
|
||||
print(f'接收到第{q}个果子的光谱数据长度:{len(spec_data)}')
|
||||
# print(f'接收到第{q}个果子的光谱数据长度:{len(spec_data)}')
|
||||
_, spec = pipe.parse_spec(spec_data)
|
||||
ep1 = time.time()
|
||||
print(f'解码第{q}个果子的光谱数据时间:{ep1-ep}')
|
||||
print(f'接收到第{q}个果子的光谱数据尺寸:{spec.shape}')
|
||||
# print(f'接收到第{q}个果子的光谱数据尺寸:{spec.shape}')
|
||||
#数据处理部分
|
||||
if images: # 确保images不为空
|
||||
sg = time.time()
|
||||
response = dp.process_data(cmd, images, spec, pipe, detector, to, impf)
|
||||
eg = time.time()
|
||||
print(f'第{q}个果子数据处理时间:{eg-sg}')
|
||||
response = dp.process_data(cmd, images, spec, pipe, detector, to, impf, q)
|
||||
if response:
|
||||
logging.info(f'处理成功,响应为: {response}')
|
||||
else:
|
||||
@ -127,9 +114,10 @@ def main(is_debug=False):
|
||||
else:
|
||||
logging.error("没有有效的图像进行处理")
|
||||
print(f'第{q}个果子处理完成')
|
||||
# end_time2 = time.time()
|
||||
# print(f'第{q}个果子全流程时间:{(end_time2-st) * 1000}毫秒')
|
||||
q += 1
|
||||
end_time2 = time.time()
|
||||
print(f'第{q}个果子全流程时间:{end_time2-st}')
|
||||
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
|
Before Width: | Height: | Size: 1.5 MiB After Width: | Height: | Size: 1.5 MiB |
|
Before Width: | Height: | Size: 1.5 MiB After Width: | Height: | Size: 1.5 MiB |
@ -1047,9 +1047,9 @@ class Detections:
|
||||
|
||||
|
||||
class Proto(nn.Module):
|
||||
# YOLOv5 mask Proto module for segmentation models
|
||||
# YOLOv5 leaf Proto module for segmentation models
|
||||
def __init__(self, c1, c_=256, c2=32):
|
||||
"""Initializes YOLOv5 Proto module for segmentation with input, proto, and mask channels configuration."""
|
||||
"""Initializes YOLOv5 Proto module for segmentation with input, proto, and leaf channels configuration."""
|
||||
super().__init__()
|
||||
self.cv1 = Conv(c1, c_, k=3)
|
||||
self.upsample = nn.Upsample(scale_factor=2, mode="nearest")
|
||||
BIN
20240627test4/models/resnet18pf20240705.pth
Normal file
BIN
20240627test4/models/resnet18pf20240705.pth
Normal file
Binary file not shown.
@ -129,7 +129,7 @@ class Detect(nn.Module):
|
||||
class Segment(Detect):
|
||||
# YOLOv5 Segment head for segmentation models
|
||||
def __init__(self, nc=80, anchors=(), nm=32, npr=256, ch=(), inplace=True):
|
||||
"""Initializes YOLOv5 Segment head with options for mask count, protos, and channel adjustments."""
|
||||
"""Initializes YOLOv5 Segment head with options for leaf count, protos, and channel adjustments."""
|
||||
super().__init__(nc, anchors, ch, inplace)
|
||||
self.nm = nm # number of masks
|
||||
self.npr = npr # number of protos
|
||||
88
20240627test4/pf_zz_test.py
Normal file
88
20240627test4/pf_zz_test.py
Normal file
@ -0,0 +1,88 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
# @Time : 2024/7/16 下午8:58
|
||||
# @Author : GG
|
||||
# @File : pf_zz_test.py
|
||||
# @Software: PyCharm
|
||||
# -*- coding: utf-8 -*-
|
||||
# @Time : 2024/7/7 下午4:33
|
||||
# @Author : TG
|
||||
# @File : totest.py
|
||||
# @Software: PyCharm
|
||||
import time
|
||||
import cv2
|
||||
import numpy as np
|
||||
import os
|
||||
import pandas as pd
|
||||
from PIL import Image
|
||||
import re
|
||||
from classifer import ImageClassifier
|
||||
from config import Config as setting
|
||||
|
||||
|
||||
def tryint(s):
|
||||
try:
|
||||
return int(s)
|
||||
except ValueError:
|
||||
return s
|
||||
|
||||
|
||||
def natural_sort_key(s):
|
||||
return [tryint(c) for c in re.split('([0-9]+)', s)]
|
||||
|
||||
|
||||
# "0": "De" 褶皱
|
||||
# "1": "N" 正常
|
||||
|
||||
|
||||
def main():
|
||||
image_dir = r'D:\project\20240714Actual_deployed\zz_test\TEST'
|
||||
pf_zz = ImageClassifier(model_path=setting.imgclassifier_model_path,
|
||||
class_indices_path=setting.imgclassifier_class_indices_path) # 假设 TOSEG 是已定义好的类,可以处理图片分割
|
||||
# 获取所有.bmp文件,并进行自然排序
|
||||
rgb_files = [os.path.join(image_dir, f) for f in os.listdir(image_dir) if f.endswith('.bmp')]
|
||||
rgb_files.sort(key=natural_sort_key)
|
||||
|
||||
# 准备保存到 Excel 的数据
|
||||
records = []
|
||||
|
||||
for idx, image_path in enumerate(rgb_files):
|
||||
img = cv2.imread(image_path, cv2.IMREAD_COLOR)
|
||||
|
||||
img = cv2.cvtColor(img, cv2.COLOR_BGR2RGB)
|
||||
|
||||
t = time.time()
|
||||
result = pf_zz.predict(img)
|
||||
e = time.time()
|
||||
|
||||
process_time = (e - t) * 1000
|
||||
print(f'第{idx + 1}张图时间:{process_time}')
|
||||
print(f'结果:{result}')
|
||||
|
||||
## 控制台显示识别结果
|
||||
# records.append(result)
|
||||
# print(f'识别为正常未褶皱的数量:{sum(records)}')
|
||||
|
||||
|
||||
## 将结果及原始文件信息写入excel
|
||||
# 获取原始文件名
|
||||
original_filename = os.path.splitext(os.path.basename(image_path))[0]
|
||||
|
||||
# 添加记录到列表
|
||||
records.append({
|
||||
"图片序号": idx + 1,
|
||||
"图片名": original_filename,
|
||||
"识别结果(0为褶皱,1为正常)": result,
|
||||
"处理时间(ms)": process_time
|
||||
})
|
||||
|
||||
# 创建 DataFrame 并写入 Excel 文件
|
||||
df = pd.DataFrame(records)
|
||||
df.to_excel(r'./zz_result.xlsx', index=False)
|
||||
|
||||
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
main()
|
||||
|
||||
|
||||
@ -46,9 +46,9 @@ class Pipe:
|
||||
)
|
||||
print("pipe管道创建成功,等待连接...")
|
||||
time.sleep(0.5)
|
||||
print('Fruit1程序启动成功,Fruit2程序正在启动中,预计需要30秒')
|
||||
print('Fruit正在启动中,预计需要30秒')
|
||||
time.sleep(0.5)
|
||||
print('请勿关闭Fruit1程序,否则Fruit2程序将无法正常运行!')
|
||||
print('请勿关闭Fruit程序,否则程序将无法正常运行!')
|
||||
time.sleep(0.5)
|
||||
print('等待中..........')
|
||||
# 等待发送端连接
|
||||
@ -59,7 +59,7 @@ class Pipe:
|
||||
print("rgb_send connected.")
|
||||
win32pipe.ConnectNamedPipe(self.spec_receive, None)
|
||||
print("spec_receive connected.")
|
||||
print('Fruit2程序启动成功!')
|
||||
print('Fruit程序启动成功!')
|
||||
return self.rgb_receive, self.rgb_send, self.spec_receive
|
||||
|
||||
except Exception as e:
|
||||
@ -89,9 +89,9 @@ class Pipe:
|
||||
try:
|
||||
# 读取光谱数据长度
|
||||
len_spec = win32file.ReadFile(spec_receive, 4, None)
|
||||
print(f'len_data:{len_spec}')
|
||||
# print(f'len_data:{len_spec}')
|
||||
data_size = int.from_bytes(len_spec[1], byteorder='big')
|
||||
print(f'所需读取数据长度:{data_size}')
|
||||
# print(f'所需读取数据长度:{data_size}')
|
||||
# 读取光谱数据
|
||||
result, spec_data = win32file.ReadFile(spec_receive, data_size, None)
|
||||
# 检查读取操作是否成功
|
||||
@ -152,7 +152,7 @@ class Pipe:
|
||||
n_rows, n_cols, n_bands, spec = data[:2], data[2:4], data[4:6], data[6:]
|
||||
try:
|
||||
n_rows, n_cols, n_bands = [int.from_bytes(x, byteorder='big') for x in [n_rows, n_cols, n_bands]]
|
||||
print(f'高度:{n_rows}, 宽度:{n_cols}, 谱段数:{n_bands}')
|
||||
# print(f'高度:{n_rows}, 宽度:{n_cols}, 谱段数:{n_bands}')
|
||||
except Exception as e:
|
||||
logging.error(f'长宽转换失败, 错误代码{e}, 报文大小: n_rows:{n_rows}, n_cols:{n_cols}, n_bands:{n_bands}')
|
||||
return '', None
|
||||
@ -12,6 +12,9 @@ import win32file
|
||||
from PIL import Image
|
||||
import numpy as np
|
||||
import cv2
|
||||
import pandas as pd
|
||||
import re
|
||||
|
||||
|
||||
class MainWindow(QMainWindow):
|
||||
def __init__(self):
|
||||
@ -63,32 +66,63 @@ class MainWindow(QMainWindow):
|
||||
None
|
||||
)
|
||||
|
||||
def save_results_to_excel(self, results, file_path='./testimg_result/results.xlsx'):
|
||||
# 创建一个 DataFrame
|
||||
df = pd.DataFrame([results]) # results 是一个字典
|
||||
|
||||
# 检查文件是否存在,如果存在就加载旧的 DataFrame,然后追加新数据
|
||||
try:
|
||||
with pd.ExcelWriter(file_path, mode='a', engine='openpyxl', if_sheet_exists='overlay') as writer:
|
||||
old_df = pd.read_excel(file_path)
|
||||
new_df = pd.concat([old_df, df], ignore_index=True)
|
||||
new_df.to_excel(writer, index=False, sheet_name='Results')
|
||||
print("结果保存到 Excel 成功")
|
||||
except FileNotFoundError:
|
||||
# 如果文件不存在,直接写入新的 DataFrame
|
||||
df.to_excel(file_path, index=False, sheet_name='Results')
|
||||
print("结果保存到 Excel 成功")
|
||||
except Exception as e:
|
||||
print(f"保存到 Excel 失败,错误原因: {e}")
|
||||
|
||||
|
||||
|
||||
def tryint(self, s):
|
||||
try:
|
||||
return int(s)
|
||||
except:
|
||||
return s
|
||||
|
||||
def natural_sort_key(self, s):
|
||||
return [self.tryint(c) for c in re.split('([0-9]+)', s)]
|
||||
|
||||
def send_image_group(self, image_dir):
|
||||
'''
|
||||
发送图像数据
|
||||
:param image_dir: bmp和raw文件所在文件夹
|
||||
:param image_dir: bmp文件所在文件夹
|
||||
:return:
|
||||
'''
|
||||
rgb_files = [os.path.join(image_dir, f) for f in os.listdir(image_dir) if f.endswith(('.bmp'))][:3]
|
||||
spec_files = [os.path.join(image_dir, f) for f in os.listdir(image_dir) if f.endswith('.raw')][:1]
|
||||
# 获取所有.bmp文件,并进行自然排序
|
||||
rgb_files = [os.path.join(image_dir, f) for f in os.listdir(image_dir) if f.endswith('.bmp')]
|
||||
rgb_files.sort(key=self.natural_sort_key)
|
||||
|
||||
self.send_YR()
|
||||
for _ in range(100):
|
||||
for image_path in rgb_files:
|
||||
self.send_YR() # 发送预热指令
|
||||
|
||||
total_files = len(rgb_files)
|
||||
for i in range(0, total_files, 3):
|
||||
current_batch = rgb_files[i:i + 3] # 每次处理3张图片
|
||||
|
||||
for image_path in current_batch:
|
||||
img = cv2.imread(image_path, cv2.IMREAD_COLOR)
|
||||
img = cv2.cvtColor(img, cv2.COLOR_BGR2RGB)
|
||||
img = np.asarray(img, dtype=np.uint8)
|
||||
|
||||
|
||||
try:
|
||||
# win32file.WriteFile(self.rgb_send, len(img_data).to_bytes(4, byteorder='big'))
|
||||
height = img.shape[0]
|
||||
width = img.shape[1]
|
||||
height = height.to_bytes(2, byteorder='big')
|
||||
width = width.to_bytes(2, byteorder='big')
|
||||
img_data = img.tobytes()
|
||||
length = (len(img_data) + 6).to_bytes(4, byteorder='big')
|
||||
# cmd = 'TO':测试番茄数据;cmd = 'PF':测试百香果数据
|
||||
cmd = 'TO'
|
||||
data_send = length + cmd.upper().encode('ascii') + height + width + img_data
|
||||
win32file.WriteFile(self.rgb_send, data_send)
|
||||
@ -96,29 +130,33 @@ class MainWindow(QMainWindow):
|
||||
except Exception as e:
|
||||
print(f"数据发送失败. 错误原因: {e}")
|
||||
|
||||
if spec_files:
|
||||
spec_file = spec_files[0]
|
||||
with open(spec_file, 'rb') as f:
|
||||
spec_data = f.read()
|
||||
print(f"当前处理的图片: {os.path.basename(image_path)}") # 打印当前正在处理的图片名称
|
||||
|
||||
try:
|
||||
# win32file.WriteFile(self.spec_send, len(spec_data).to_bytes(4, byteorder='big'))
|
||||
# print(f"发送的光谱数据长度: {len(spec_data)}")
|
||||
heigth = 30
|
||||
weight = 30
|
||||
bands = 224
|
||||
heigth = heigth.to_bytes(2, byteorder='big')
|
||||
weight = weight.to_bytes(2, byteorder='big')
|
||||
bands = bands.to_bytes(2, byteorder='big')
|
||||
length = (len(spec_data)+8).to_bytes(4, byteorder='big')
|
||||
# cmd = 'TO':测试番茄数据;cmd = 'PF':测试百香果数据
|
||||
cmd = 'TO'
|
||||
data_send = length + cmd.upper().encode('ascii') + heigth + weight + bands + spec_data
|
||||
win32file.WriteFile(self.spec_send, data_send)
|
||||
print(f'发送的光谱数据长度: {len(data_send)}')
|
||||
print(f'spec长度: {len(spec_data)}')
|
||||
except Exception as e:
|
||||
print(f"数据发送失败. 错误原因: {e}")
|
||||
|
||||
|
||||
# if spec_files:
|
||||
# spec_file = spec_files[0]
|
||||
# with open(spec_file, 'rb') as f:
|
||||
# spec_data = f.read()
|
||||
#
|
||||
# try:
|
||||
# # win32file.WriteFile(self.spec_send, len(spec_data).to_bytes(4, byteorder='big'))
|
||||
# # print(f"发送的光谱数据长度: {len(spec_data)}")
|
||||
# heigth = 30
|
||||
# weight = 30
|
||||
# bands = 224
|
||||
# heigth = heigth.to_bytes(2, byteorder='big')
|
||||
# weight = weight.to_bytes(2, byteorder='big')
|
||||
# bands = bands.to_bytes(2, byteorder='big')
|
||||
# length = (len(spec_data)+8).to_bytes(4, byteorder='big')
|
||||
# # cmd = 'TO':测试番茄数据;cmd = 'PF':测试百香果数据
|
||||
# cmd = 'TO'
|
||||
# data_send = length + cmd.upper().encode('ascii') + heigth + weight + bands + spec_data
|
||||
# win32file.WriteFile(self.spec_send, data_send)
|
||||
# print(f'发送的光谱数据长度: {len(data_send)}')
|
||||
# print(f'spec长度: {len(spec_data)}')
|
||||
# except Exception as e:
|
||||
# print(f"数据发送失败. 错误原因: {e}")
|
||||
|
||||
self.receive_result()
|
||||
|
||||
@ -158,6 +196,20 @@ class MainWindow(QMainWindow):
|
||||
width = int.from_bytes(data[16:18], byteorder='big')
|
||||
rp = data[18:]
|
||||
img = np.frombuffer(rp, dtype=np.uint8).reshape(heigth, width, -1)
|
||||
|
||||
results = {
|
||||
'Cmd': data[:2].decode('ascii').strip().upper(),
|
||||
'Brix': (int.from_bytes(data[2:4], byteorder='big')) / 1000,
|
||||
'Green Percentage': (int.from_bytes(data[4:5], byteorder='big')) / 100,
|
||||
'Diameter': (int.from_bytes(data[5:7], byteorder='big')) / 100,
|
||||
'Weight': int.from_bytes(data[7:8], byteorder='big'),
|
||||
'Defect Number': int.from_bytes(data[8:10], byteorder='big'),
|
||||
'Total Defect Area': (int.from_bytes(data[10:14], byteorder='big')) / 1000
|
||||
}
|
||||
|
||||
# 调用保存到 Excel 的函数
|
||||
self.save_results_to_excel(results)
|
||||
|
||||
print(f"指令:{cmd_result}, 糖度值:{brix}, 绿色占比:{green_percentage}, 直径:{diameter}cm, "
|
||||
f"预估重量:{weight}g, 缺陷个数:{defect_num}, 缺陷面积:{total_defect_area}cm^2, 结果图的尺寸:{img.shape}")
|
||||
|
||||
44
20240627test4/requirements.txt
Normal file
44
20240627test4/requirements.txt
Normal file
@ -0,0 +1,44 @@
|
||||
albumentations==1.4.11
|
||||
comet_ml==3.44.1
|
||||
coremltools==7.2
|
||||
Flask==3.0.3
|
||||
GitPython==3.1.43
|
||||
ipython==8.12.3
|
||||
joblib==1.2.0
|
||||
matplotlib==3.7.1
|
||||
mss==9.0.1
|
||||
nncf==2.11.0
|
||||
numpy==1.25.0
|
||||
onnx==1.16.1
|
||||
onnxruntime==1.18.1
|
||||
onnxsim==0.4.36
|
||||
opencv_contrib_python==4.10.0.84
|
||||
opencv_python==4.10.0.84
|
||||
opencv_python_headless==4.10.0.84
|
||||
openvino==2024.2.0
|
||||
pafy==0.5.5
|
||||
pandas==1.5.3
|
||||
Pillow==9.4.0
|
||||
psutil==5.9.0
|
||||
PyQt5==5.15.10
|
||||
PyQt5_sip==12.11.0
|
||||
pywin32==305
|
||||
PyYAML==6.0
|
||||
Requests==2.32.3
|
||||
scikit_learn==1.2.2
|
||||
scipy==1.10.1
|
||||
seaborn==0.13.2
|
||||
setuptools==60.2.0
|
||||
tensorflow==2.17.0
|
||||
tensorflowjs==4.20.0
|
||||
tensorrt==10.2.0.post1
|
||||
tflite_runtime==2.14.0
|
||||
tflite_support==0.4.4
|
||||
torch==2.0.1
|
||||
torchvision==0.15.2
|
||||
tqdm==4.65.2
|
||||
train==0.0.5
|
||||
tritonclient==2.47.0
|
||||
ultralytics==8.2.48
|
||||
ultralytics_thop==2.0.0
|
||||
x2paddle==1.4.1
|
||||
73
20240627test4/to_leaf_test.py
Normal file
73
20240627test4/to_leaf_test.py
Normal file
@ -0,0 +1,73 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
# @Time : 2024/7/7 下午4:33
|
||||
# @Author : TG
|
||||
# @File : totest.py
|
||||
# @Software: PyCharm
|
||||
import time
|
||||
import cv2
|
||||
import numpy as np
|
||||
import os
|
||||
import pandas as pd
|
||||
from PIL import Image
|
||||
import re
|
||||
from to_seg import TOSEG
|
||||
|
||||
|
||||
def tryint(s):
|
||||
try:
|
||||
return int(s)
|
||||
except ValueError:
|
||||
return s
|
||||
|
||||
|
||||
def natural_sort_key(s):
|
||||
return [tryint(c) for c in re.split('([0-9]+)', s)]
|
||||
|
||||
|
||||
def main():
|
||||
image_dir = r'D:\project\20240714Actual_deployed\testimg'
|
||||
to = TOSEG() # 假设 TOSEG 是已定义好的类,可以处理图片分割
|
||||
# 获取所有.bmp文件,并进行自然排序
|
||||
rgb_files = [os.path.join(image_dir, f) for f in os.listdir(image_dir) if f.endswith('.bmp')]
|
||||
rgb_files.sort(key=natural_sort_key)
|
||||
|
||||
# 准备保存到 Excel 的数据
|
||||
records = []
|
||||
|
||||
for idx, image_path in enumerate(rgb_files):
|
||||
img = cv2.imread(image_path, cv2.IMREAD_COLOR)
|
||||
|
||||
# img = cv2.cvtColor(img, cv2.COLOR_BGR2RGB)
|
||||
t = time.time()
|
||||
result = to.toseg(img) # 假设 toseg 方法接受一个图片数组,并返回处理后的图片
|
||||
e = time.time()
|
||||
result = cv2.cvtColor(result, cv2.COLOR_GRAY2BGR)
|
||||
process_time = e - t
|
||||
print(f'第{idx + 1}张图时间:{process_time}')
|
||||
|
||||
# 获取原始文件名并添加“mask”后缀
|
||||
original_filename = os.path.splitext(os.path.basename(image_path))[0]
|
||||
output_filename = f'{original_filename}_leaf.png'
|
||||
cv2.imwrite(os.path.join(r'D:\project\20240714Actual_deployed\leaf',
|
||||
output_filename), result)
|
||||
|
||||
# 添加记录到列表
|
||||
records.append({
|
||||
"Image Index": idx + 1,
|
||||
"File Name": original_filename,
|
||||
"Processing Time (s)": process_time
|
||||
})
|
||||
|
||||
# cv2.imshow('result', result)
|
||||
# cv2.waitKey(0)
|
||||
# cv2.destroyAllWindows()
|
||||
|
||||
# 创建 DataFrame 并写入 Excel 文件
|
||||
df = pd.DataFrame(records)
|
||||
df.to_excel(r'D:\project\20240714Actual_deployed\leaf\leaf_processing_times.xlsx', index=False)
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
main()
|
||||
|
||||
|
||||
186
20240627test4/to_seg.py
Normal file
186
20240627test4/to_seg.py
Normal file
@ -0,0 +1,186 @@
|
||||
import os
|
||||
import sys
|
||||
from pathlib import Path
|
||||
import torch
|
||||
FILE = Path(__file__).resolve()
|
||||
ROOT = FILE.parents[1] # YOLOv5 root directory
|
||||
if str(ROOT) not in sys.path:
|
||||
sys.path.append(str(ROOT)) # add ROOT to PATH
|
||||
ROOT = Path(os.path.relpath(ROOT, Path.cwd())) # relative
|
||||
from models.common import DetectMultiBackend
|
||||
from utils.general import check_img_size, non_max_suppression, scale_boxes
|
||||
from utils.segment.general import process_mask, process_mask_native
|
||||
from utils.torch_utils import select_device, smart_inference_mode
|
||||
import cv2
|
||||
import numpy as np
|
||||
from config import Config as setting
|
||||
|
||||
def letterbox(img, new_shape=(640, 640), color=(114, 114, 114), auto=True, scaleFill=False, scaleup=True, stride=32):
|
||||
# This function remains the same as defined previously
|
||||
shape = img.shape[:2] # current shape [height, width]
|
||||
if isinstance(new_shape, int):
|
||||
new_shape = (new_shape, new_shape)
|
||||
|
||||
r = min(new_shape[0] / shape[0], new_shape[1] / shape[1])
|
||||
if not scaleup:
|
||||
r = min(r, 1.0)
|
||||
|
||||
ratio = r, r
|
||||
new_unpad = int(round(shape[1] * r)), int(round(shape[0] * r))
|
||||
dw, dh = new_shape[1] - new_unpad[0], new_shape[0] - new_unpad[1]
|
||||
if auto:
|
||||
dw, dh = np.mod(dw, stride), np.mod(dh, stride)
|
||||
elif scaleFill:
|
||||
dw, dh = 0.0, 0.0
|
||||
new_unpad = new_shape
|
||||
ratio = new_shape[0] / shape[1], new_shape[1] / shape[0]
|
||||
|
||||
dw /= 2
|
||||
dh /= 2
|
||||
|
||||
if shape[::-1] != new_unpad:
|
||||
img = cv2.resize(img, new_unpad, interpolation=cv2.INTER_LINEAR)
|
||||
top, bottom = int(round(dh - 0.1)), int(round(dh + 0.1))
|
||||
left, right = int(round(dw - 0.1)), int(round(dw + 0.1))
|
||||
img = cv2.copyMakeBorder(img, top, bottom, left, right, cv2.BORDER_CONSTANT, value=color)
|
||||
|
||||
return img, ratio, (dw, dh)
|
||||
def process_image(img0, img_size=640, stride=32, auto=True):
|
||||
"""
|
||||
Processes an image by resizing and padding it to the required size.
|
||||
|
||||
Args:
|
||||
- img0 (np.array): Original image as a numpy array.
|
||||
- img_size (int, optional): Desired size of the image. Defaults to 640.
|
||||
- stride (int, optional): Stride size for padding. Defaults to 32.
|
||||
- auto (bool, optional): If True, automatically adjusts padding to meet stride requirements. Defaults to True.
|
||||
|
||||
Returns:
|
||||
- np.array: The processed image ready for model input.
|
||||
"""
|
||||
# Resize and pad the image
|
||||
im, _, _ = letterbox(img0, new_shape=img_size, stride=stride, auto=auto)
|
||||
|
||||
# Convert image from HWC to CHW format and from BGR to RGB
|
||||
im = im.transpose((2, 0, 1))[::-1] # HWC to CHW, BGR to RGB
|
||||
im = np.ascontiguousarray(im)
|
||||
|
||||
return im
|
||||
|
||||
class TOSEG:
|
||||
def __init__(self, weights=Path(setting.toseg_weights), device='', dnn=False, data=None, half=False, imgsz=(640, 640)):
|
||||
self.device = select_device(device)
|
||||
self.model = DetectMultiBackend(weights, device=self.device, dnn=dnn, data=data, fp16=half)
|
||||
self.stride, self.names, self.pt = self.model.stride, self.model.names, self.model.pt
|
||||
self.imgsz = check_img_size(imgsz, s=self.stride)
|
||||
self.model.warmup(imgsz=(1 if self.pt else 1, 3, *self.imgsz))
|
||||
|
||||
@smart_inference_mode()
|
||||
#返回结果图像
|
||||
# def visualize(self, image, results, line_thickness=3, hide_labels=False, hide_conf=False):
|
||||
# annotator = Annotator(image, line_width=line_thickness)
|
||||
#
|
||||
# # 获取原始图像尺寸
|
||||
# h, w = image.shape[:2]
|
||||
#
|
||||
# # 准备 im_gpu 参数
|
||||
# im_gpu = torch.as_tensor(image, dtype=torch.float16, device=self.device).permute(2, 0, 1).flip(
|
||||
# 0).contiguous() / 255
|
||||
#
|
||||
# for r in results:
|
||||
# box = r['xyxy']
|
||||
# leaf = r['leaf']
|
||||
# label = None if hide_labels else (r['label'] if hide_conf else f"{r['label']} {r['conf']:.2f}")
|
||||
# annotator.box_label(box, label, color=colors(r['cls'], True))
|
||||
#
|
||||
# # 确保 leaf 是正确的格式并调整大小
|
||||
# if isinstance(leaf, np.ndarray):
|
||||
# leaf = torch.from_numpy(leaf).to(self.device)
|
||||
# elif isinstance(leaf, list):
|
||||
# leaf = torch.tensor(leaf, device=self.device)
|
||||
#
|
||||
# # 如果 leaf 是 2D,添加批次维度
|
||||
# if leaf.ndim == 2:
|
||||
# leaf = leaf.unsqueeze(0)
|
||||
#
|
||||
# # 调整掩码大小以匹配原始图像
|
||||
# leaf = torch.nn.functional.interpolate(leaf.unsqueeze(1).float(), size=(h, w), mode='bilinear',
|
||||
# align_corners=False).squeeze(1)
|
||||
#
|
||||
# annotator.masks(leaf, colors=[colors(r['cls'], True)], im_gpu=im_gpu)
|
||||
#
|
||||
# return annotator.result()
|
||||
#返回掩码图像
|
||||
def visualize(self, image, results, line_thickness=3, hide_labels=False, hide_conf=False):
|
||||
# 创建一个全白的背景图像
|
||||
background = np.zeros_like(image) * 255 # 将背景设置为白色
|
||||
|
||||
h, w = image.shape[:2] # 获取图像尺寸
|
||||
|
||||
for r in results:
|
||||
mask = r['leaf']
|
||||
if isinstance(mask, np.ndarray):
|
||||
mask = torch.from_numpy(mask).to(self.device)
|
||||
elif isinstance(mask, list):
|
||||
mask = torch.tensor(mask, device=self.device)
|
||||
|
||||
if mask.ndim == 2:
|
||||
mask = mask.unsqueeze(0)
|
||||
|
||||
# 调整掩码大小以匹配原始图像
|
||||
mask = torch.nn.functional.interpolate(mask.unsqueeze(1).float(), size=(h, w), mode='bilinear',
|
||||
align_corners=False).squeeze(1)
|
||||
|
||||
# 将遮罩应用于背景
|
||||
black_mask = (mask.cpu().numpy() > 0.5) # 创建一个黑色遮罩
|
||||
for i in range(3): # 对每个颜色通道进行操作
|
||||
background[:, :, i] = np.where(black_mask, 255, background[:, :, i]) # 在遮罩区域应用黑色
|
||||
|
||||
return background
|
||||
|
||||
def predict(self, source, conf_thres=0.25, iou_thres=0.45, max_det=1000, classes=None,
|
||||
agnostic_nms=False, augment=False, retina_masks=False):
|
||||
# dataset = LoadImages(source, img_size=self.imgsz, stride=self.stride, auto=self.pt)
|
||||
|
||||
|
||||
# for path, im, im0s, vid_cap, s in dataset:
|
||||
im0s = source
|
||||
im = process_image(im0s, img_size=self.imgsz, stride=self.stride, auto=self.pt)
|
||||
im = torch.from_numpy(im).to(self.model.device)
|
||||
im = im.half() if self.model.fp16 else im.float() # uint8 to fp16/32
|
||||
im /= 255 # 0 - 255 to 0.0 - 1.0
|
||||
if len(im.shape) == 3:
|
||||
im = im[None] # expand for batch dim
|
||||
|
||||
pred, proto = self.model(im, augment=augment)[:2]
|
||||
pred = non_max_suppression(pred, conf_thres, iou_thres, classes, agnostic_nms, max_det=max_det, nm=32)
|
||||
|
||||
results = []
|
||||
for i, det in enumerate(pred): # per image
|
||||
if len(det):
|
||||
if retina_masks:
|
||||
det[:, :4] = scale_boxes(im.shape[2:], det[:, :4], im0s.shape).round()
|
||||
masks = process_mask_native(proto[i], det[:, 6:], det[:, :4], im0s.shape[:2])
|
||||
else:
|
||||
masks = process_mask(proto[i], det[:, 6:], det[:, :4], im.shape[2:], upsample=True)
|
||||
det[:, :4] = scale_boxes(im.shape[2:], det[:, :4], im0s.shape).round()
|
||||
|
||||
for j, (*xyxy, conf, cls) in enumerate(reversed(det[:, :6])):
|
||||
c = int(cls)
|
||||
label = f'{self.names[c]} {conf:.2f}'
|
||||
mask = masks[j]
|
||||
results.append({
|
||||
'xyxy': xyxy,
|
||||
'conf': conf,
|
||||
'cls': c,
|
||||
'label': label,
|
||||
'leaf': mask
|
||||
})
|
||||
|
||||
return results, im0s
|
||||
|
||||
def toseg(self, img):
|
||||
results, image = self.predict(img)
|
||||
vaa = self.visualize(image, results)
|
||||
mask = cv2.cvtColor(vaa, cv2.COLOR_RGB2GRAY)
|
||||
return mask
|
||||
457
20240627test4/tomato-passion_fruit.log
Normal file
457
20240627test4/tomato-passion_fruit.log
Normal file
@ -0,0 +1,457 @@
|
||||
2024-06-28 11:30:05,483 utils.py[line:84] - ERROR - 数据接收失败,错误原因: (109, 'ReadFile', '管道已结束。')
|
||||
2024-06-28 11:35:36,240 utils.py[line:84] - ERROR - 数据接收失败,错误原因: (109, 'ReadFile', '管道已结束。')
|
||||
2024-06-28 11:36:24,181 utils.py[line:84] - ERROR - 数据接收失败,错误原因: (109, 'ReadFile', '管道已结束。')
|
||||
2024-06-28 11:51:27,970 utils.py[line:227] - ERROR - 发送指令失败,错误类型:(232, 'WriteFile', '管道正在被关闭。')
|
||||
2024-06-28 11:51:27,971 main.py[line:82] - ERROR - 处理失败
|
||||
2024-06-28 11:51:27,977 utils.py[line:84] - ERROR - 数据接收失败,错误原因: (109, 'ReadFile', '管道已结束。')
|
||||
2024-06-28 11:55:18,328 utils.py[line:84] - ERROR - 数据接收失败,错误原因: (109, 'ReadFile', '管道已结束。')
|
||||
2024-06-28 11:59:41,747 utils.py[line:84] - ERROR - 数据接收失败,错误原因: (109, 'ReadFile', '管道已结束。')
|
||||
2024-06-28 12:03:47,921 utils.py[line:227] - ERROR - 发送指令失败,错误类型:(232, 'WriteFile', '管道正在被关闭。')
|
||||
2024-06-28 12:03:47,922 main.py[line:82] - ERROR - 处理失败
|
||||
2024-06-28 12:03:47,922 utils.py[line:84] - ERROR - 数据接收失败,错误原因: (109, 'ReadFile', '管道已结束。')
|
||||
2024-06-28 12:06:28,421 utils.py[line:84] - ERROR - 数据接收失败,错误原因: (109, 'ReadFile', '管道已结束。')
|
||||
2024-06-28 12:12:04,287 utils.py[line:84] - ERROR - 数据接收失败,错误原因: (109, 'ReadFile', '管道已结束。')
|
||||
2024-06-28 12:14:07,667 utils.py[line:84] - ERROR - 数据接收失败,错误原因: (109, 'ReadFile', '管道已结束。')
|
||||
2024-06-28 12:15:23,671 utils.py[line:101] - ERROR - 数据接收失败,错误原因: (109, 'ReadFile', '管道已结束。')
|
||||
2024-06-28 12:17:16,305 utils.py[line:84] - ERROR - 数据接收失败,错误原因: (109, 'ReadFile', '管道已结束。')
|
||||
2024-06-28 12:18:43,577 utils.py[line:84] - ERROR - 数据接收失败,错误原因: (109, 'ReadFile', '管道已结束。')
|
||||
2024-06-28 12:20:46,118 utils.py[line:84] - ERROR - 数据接收失败,错误原因: (109, 'ReadFile', '管道已结束。')
|
||||
2024-06-28 12:22:39,747 utils.py[line:84] - ERROR - 数据接收失败,错误原因: (109, 'ReadFile', '管道已结束。')
|
||||
2024-06-28 12:26:07,385 utils.py[line:84] - ERROR - 数据接收失败,错误原因: (109, 'ReadFile', '管道已结束。')
|
||||
2024-06-28 14:52:26,065 utils.py[line:101] - ERROR - 数据接收失败,错误原因: (109, 'ReadFile', '管道已结束。')
|
||||
2024-06-28 14:55:54,058 utils.py[line:84] - ERROR - 数据接收失败,错误原因: (109, 'ReadFile', '管道已结束。')
|
||||
2024-06-28 14:56:51,979 utils.py[line:84] - ERROR - 数据接收失败,错误原因: (109, 'ReadFile', '管道已结束。')
|
||||
2024-06-28 15:18:10,133 utils.py[line:84] - ERROR - 数据接收失败,错误原因: (109, 'ReadFile', '管道已结束。')
|
||||
2024-06-28 15:20:59,777 utils.py[line:84] - ERROR - 数据接收失败,错误原因: (109, 'ReadFile', '管道已结束。')
|
||||
2024-06-28 15:23:38,138 utils.py[line:84] - ERROR - 数据接收失败,错误原因: (109, 'ReadFile', '管道已结束。')
|
||||
2024-06-28 15:31:44,479 utils.py[line:84] - ERROR - 数据接收失败,错误原因: (109, 'ReadFile', '管道已结束。')
|
||||
2024-06-28 15:48:30,938 utils.py[line:84] - ERROR - 数据接收失败,错误原因: (109, 'ReadFile', '管道已结束。')
|
||||
2024-06-28 16:03:04,564 utils.py[line:84] - ERROR - 数据接收失败,错误原因: (109, 'ReadFile', '管道已结束。')
|
||||
2024-06-28 16:07:31,464 utils.py[line:84] - ERROR - 数据接收失败,错误原因: (109, 'ReadFile', '管道已结束。')
|
||||
2024-06-28 16:25:01,278 utils.py[line:84] - ERROR - 数据接收失败,错误原因: (109, 'ReadFile', '管道已结束。')
|
||||
2024-06-28 16:29:57,905 utils.py[line:84] - ERROR - 数据接收失败,错误原因: (109, 'ReadFile', '管道已结束。')
|
||||
2024-06-28 16:49:10,627 utils.py[line:84] - ERROR - 数据接收失败,错误原因: (109, 'ReadFile', '管道已结束。')
|
||||
2024-06-28 16:50:30,739 utils.py[line:84] - ERROR - 数据接收失败,错误原因: (109, 'ReadFile', '管道已结束。')
|
||||
2024-06-28 16:52:40,850 utils.py[line:84] - ERROR - 数据接收失败,错误原因: (109, 'ReadFile', '管道已结束。')
|
||||
2024-06-28 17:01:43,963 utils.py[line:84] - ERROR - 数据接收失败,错误原因: (109, 'ReadFile', '管道已结束。')
|
||||
2024-06-28 17:05:56,524 utils.py[line:84] - ERROR - 数据接收失败,错误原因: (109, 'ReadFile', '管道已结束。')
|
||||
2024-06-28 17:09:33,282 utils.py[line:84] - ERROR - 数据接收失败,错误原因: (109, 'ReadFile', '管道已结束。')
|
||||
2024-06-28 17:12:01,788 utils.py[line:84] - ERROR - 数据接收失败,错误原因: (109, 'ReadFile', '管道已结束。')
|
||||
2024-06-28 17:13:27,639 utils.py[line:84] - ERROR - 数据接收失败,错误原因: (109, 'ReadFile', '管道已结束。')
|
||||
2024-06-28 17:20:43,034 utils.py[line:84] - ERROR - 数据接收失败,错误原因: (109, 'ReadFile', '管道已结束。')
|
||||
2024-06-29 15:43:42,727 utils.py[line:84] - ERROR - 数据接收失败,错误原因: (109, 'ReadFile', '管道已结束。')
|
||||
2024-06-29 15:52:02,852 utils.py[line:84] - ERROR - 数据接收失败,错误原因: (109, 'ReadFile', '管道已结束。')
|
||||
2024-06-29 16:08:30,885 utils.py[line:84] - ERROR - 数据接收失败,错误原因: (109, 'ReadFile', '管道已结束。')
|
||||
2024-06-29 16:21:17,909 utils.py[line:84] - ERROR - 数据接收失败,错误原因: (109, 'ReadFile', '管道已结束。')
|
||||
2024-06-29 16:31:42,830 utils.py[line:227] - ERROR - 发送指令失败,错误类型:(232, 'WriteFile', '管道正在被关闭。')
|
||||
2024-06-29 16:31:42,831 main.py[line:92] - ERROR - 处理失败
|
||||
2024-06-29 16:31:42,831 utils.py[line:84] - ERROR - 数据接收失败,错误原因: (109, 'ReadFile', '管道已结束。')
|
||||
2024-06-29 16:35:42,748 utils.py[line:84] - ERROR - 数据接收失败,错误原因: (109, 'ReadFile', '管道已结束。')
|
||||
2024-06-29 16:44:57,631 utils.py[line:84] - ERROR - 数据接收失败,错误原因: (109, 'ReadFile', '管道已结束。')
|
||||
2024-06-29 16:49:04,069 utils.py[line:84] - ERROR - 数据接收失败,错误原因: (109, 'ReadFile', '管道已结束。')
|
||||
2024-06-29 16:53:18,366 utils.py[line:158] - ERROR - 图像指令转换失败,数据长度错误
|
||||
2024-06-29 17:17:24,471 utils.py[line:84] - ERROR - 数据接收失败,错误原因: (109, 'ReadFile', '管道已结束。')
|
||||
2024-06-29 17:44:57,312 utils.py[line:84] - ERROR - 数据接收失败,错误原因: (109, 'ReadFile', '管道已结束。')
|
||||
2024-06-29 17:48:31,343 utils.py[line:230] - ERROR - 发送指令失败,错误类型:(232, 'WriteFile', '管道正在被关闭。')
|
||||
2024-06-29 17:48:31,344 main.py[line:95] - ERROR - 处理失败
|
||||
2024-06-29 17:48:31,344 utils.py[line:84] - ERROR - 数据接收失败,错误原因: (109, 'ReadFile', '管道已结束。')
|
||||
2024-06-29 17:52:27,224 utils.py[line:84] - ERROR - 数据接收失败,错误原因: (109, 'ReadFile', '管道已结束。')
|
||||
2024-06-29 18:40:34,394 utils.py[line:230] - ERROR - 发送指令失败,错误类型:(232, 'WriteFile', '管道正在被关闭。')
|
||||
2024-06-29 18:40:34,395 main.py[line:95] - ERROR - 处理失败
|
||||
2024-06-29 18:40:34,395 utils.py[line:84] - ERROR - 数据接收失败,错误原因: (109, 'ReadFile', '管道已结束。')
|
||||
2024-06-30 12:45:15,007 utils.py[line:84] - ERROR - 数据接收失败,错误原因: (109, 'ReadFile', '管道已结束。')
|
||||
2024-06-30 12:57:37,170 utils.py[line:84] - ERROR - 数据接收失败,错误原因: (109, 'ReadFile', '管道已结束。')
|
||||
2024-06-30 13:01:35,413 utils.py[line:84] - ERROR - 数据接收失败,错误原因: (109, 'ReadFile', '管道已结束。')
|
||||
2024-06-30 14:14:42,010 utils.py[line:84] - ERROR - 数据接收失败,错误原因: (109, 'ReadFile', '管道已结束。')
|
||||
2024-06-30 14:24:06,845 utils.py[line:84] - ERROR - 数据接收失败,错误原因: (109, 'ReadFile', '管道已结束。')
|
||||
2024-06-30 14:35:07,953 utils.py[line:84] - ERROR - 数据接收失败,错误原因: (109, 'ReadFile', '管道已结束。')
|
||||
2024-07-01 15:27:37,749 utils.py[line:161] - ERROR - 图像指令转换失败,数据长度错误
|
||||
2024-07-01 16:23:59,608 utils.py[line:84] - ERROR - 数据接收失败,错误原因: (109, 'ReadFile', '管道已结束。')
|
||||
2024-07-01 16:27:39,666 utils.py[line:84] - ERROR - 数据接收失败,错误原因: (109, 'ReadFile', '管道已结束。')
|
||||
2024-07-01 16:45:20,986 utils.py[line:84] - ERROR - 数据接收失败,错误原因: (109, 'ReadFile', '管道已结束。')
|
||||
2024-07-01 16:49:36,061 utils.py[line:84] - ERROR - 数据接收失败,错误原因: (109, 'ReadFile', '管道已结束。')
|
||||
2024-07-01 16:57:25,351 utils.py[line:84] - ERROR - 数据接收失败,错误原因: (109, 'ReadFile', '管道已结束。')
|
||||
2024-07-01 17:01:32,692 utils.py[line:84] - ERROR - 数据接收失败,错误原因: (109, 'ReadFile', '管道已结束。')
|
||||
2024-07-01 17:22:45,049 utils.py[line:84] - ERROR - 数据接收失败,错误原因: (109, 'ReadFile', '管道已结束。')
|
||||
2024-07-01 17:25:23,065 utils.py[line:230] - ERROR - 发送指令失败,错误类型:(232, 'WriteFile', '管道正在被关闭。')
|
||||
2024-07-01 17:25:23,065 main.py[line:101] - ERROR - 处理失败
|
||||
2024-07-01 17:25:23,065 utils.py[line:84] - ERROR - 数据接收失败,错误原因: (109, 'ReadFile', '管道已结束。')
|
||||
2024-07-01 17:27:39,278 utils.py[line:84] - ERROR - 数据接收失败,错误原因: (109, 'ReadFile', '管道已结束。')
|
||||
2024-07-01 17:29:37,321 utils.py[line:84] - ERROR - 数据接收失败,错误原因: (109, 'ReadFile', '管道已结束。')
|
||||
2024-07-01 17:31:32,282 utils.py[line:84] - ERROR - 数据接收失败,错误原因: (109, 'ReadFile', '管道已结束。')
|
||||
2024-07-01 17:33:22,204 utils.py[line:84] - ERROR - 数据接收失败,错误原因: (109, 'ReadFile', '管道已结束。')
|
||||
2024-07-01 17:35:32,399 utils.py[line:84] - ERROR - 数据接收失败,错误原因: (109, 'ReadFile', '管道已结束。')
|
||||
2024-07-01 17:46:20,681 utils.py[line:84] - ERROR - 数据接收失败,错误原因: (109, 'ReadFile', '管道已结束。')
|
||||
2024-07-01 17:47:51,507 utils.py[line:84] - ERROR - 数据接收失败,错误原因: (109, 'ReadFile', '管道已结束。')
|
||||
2024-07-01 17:51:45,559 utils.py[line:230] - ERROR - 发送指令失败,错误类型:(232, 'WriteFile', '管道正在被关闭。')
|
||||
2024-07-01 17:51:45,559 main.py[line:101] - ERROR - 处理失败
|
||||
2024-07-01 17:51:45,560 utils.py[line:84] - ERROR - 数据接收失败,错误原因: (109, 'ReadFile', '管道已结束。')
|
||||
2024-07-04 14:08:48,265 pipe_utils.py[line:231] - ERROR - 发送指令失败,错误类型:(232, 'WriteFile', '管道正在被关闭。')
|
||||
2024-07-04 14:08:48,265 main.py[line:108] - ERROR - 处理失败
|
||||
2024-07-04 14:08:49,453 pipe_utils.py[line:231] - ERROR - 发送指令失败,错误类型:(232, 'WriteFile', '管道正在被关闭。')
|
||||
2024-07-04 14:08:49,453 main.py[line:108] - ERROR - 处理失败
|
||||
2024-07-04 14:08:50,744 pipe_utils.py[line:231] - ERROR - 发送指令失败,错误类型:(232, 'WriteFile', '管道正在被关闭。')
|
||||
2024-07-04 14:08:50,744 main.py[line:108] - ERROR - 处理失败
|
||||
2024-07-04 14:08:50,744 pipe_utils.py[line:85] - ERROR - 数据接收失败,错误原因: (109, 'ReadFile', '管道已结束。')
|
||||
2024-07-04 14:27:19,068 pipe_utils.py[line:85] - ERROR - 数据接收失败,错误原因: (109, 'ReadFile', '管道已结束。')
|
||||
2024-07-04 16:41:47,465 pipe_utils.py[line:85] - ERROR - 数据接收失败,错误原因: (109, 'ReadFile', '管道已结束。')
|
||||
2024-07-04 16:45:24,931 pipe_utils.py[line:85] - ERROR - 数据接收失败,错误原因: (109, 'ReadFile', '管道已结束。')
|
||||
2024-07-04 16:49:02,620 pipe_utils.py[line:85] - ERROR - 数据接收失败,错误原因: (109, 'ReadFile', '管道已结束。')
|
||||
2024-07-04 16:51:48,679 pipe_utils.py[line:85] - ERROR - 数据接收失败,错误原因: (109, 'ReadFile', '管道已结束。')
|
||||
2024-07-04 16:53:58,252 pipe_utils.py[line:85] - ERROR - 数据接收失败,错误原因: (109, 'ReadFile', '管道已结束。')
|
||||
2024-07-04 17:00:49,493 pipe_utils.py[line:85] - ERROR - 数据接收失败,错误原因: (109, 'ReadFile', '管道已结束。')
|
||||
2024-07-04 17:08:10,792 pipe_utils.py[line:231] - ERROR - 发送指令失败,错误类型:(232, 'WriteFile', '管道正在被关闭。')
|
||||
2024-07-04 17:08:10,793 main.py[line:110] - ERROR - 处理失败
|
||||
2024-07-04 17:08:12,041 pipe_utils.py[line:231] - ERROR - 发送指令失败,错误类型:(232, 'WriteFile', '管道正在被关闭。')
|
||||
2024-07-04 17:08:12,042 main.py[line:110] - ERROR - 处理失败
|
||||
2024-07-04 17:08:13,179 pipe_utils.py[line:231] - ERROR - 发送指令失败,错误类型:(232, 'WriteFile', '管道正在被关闭。')
|
||||
2024-07-04 17:08:13,179 main.py[line:110] - ERROR - 处理失败
|
||||
2024-07-04 17:08:14,424 pipe_utils.py[line:231] - ERROR - 发送指令失败,错误类型:(232, 'WriteFile', '管道正在被关闭。')
|
||||
2024-07-04 17:08:14,425 main.py[line:110] - ERROR - 处理失败
|
||||
2024-07-04 17:08:15,606 pipe_utils.py[line:231] - ERROR - 发送指令失败,错误类型:(232, 'WriteFile', '管道正在被关闭。')
|
||||
2024-07-04 17:08:15,606 main.py[line:110] - ERROR - 处理失败
|
||||
2024-07-04 17:08:16,934 pipe_utils.py[line:231] - ERROR - 发送指令失败,错误类型:(232, 'WriteFile', '管道正在被关闭。')
|
||||
2024-07-04 17:08:16,934 main.py[line:110] - ERROR - 处理失败
|
||||
2024-07-04 17:08:18,134 pipe_utils.py[line:231] - ERROR - 发送指令失败,错误类型:(232, 'WriteFile', '管道正在被关闭。')
|
||||
2024-07-04 17:08:18,134 main.py[line:110] - ERROR - 处理失败
|
||||
2024-07-04 17:08:19,383 pipe_utils.py[line:231] - ERROR - 发送指令失败,错误类型:(232, 'WriteFile', '管道正在被关闭。')
|
||||
2024-07-04 17:08:19,383 main.py[line:110] - ERROR - 处理失败
|
||||
2024-07-04 17:08:20,639 pipe_utils.py[line:231] - ERROR - 发送指令失败,错误类型:(232, 'WriteFile', '管道正在被关闭。')
|
||||
2024-07-04 17:08:20,639 main.py[line:110] - ERROR - 处理失败
|
||||
2024-07-04 17:08:21,809 pipe_utils.py[line:231] - ERROR - 发送指令失败,错误类型:(232, 'WriteFile', '管道正在被关闭。')
|
||||
2024-07-04 17:08:21,809 main.py[line:110] - ERROR - 处理失败
|
||||
2024-07-04 17:08:21,810 pipe_utils.py[line:85] - ERROR - 数据接收失败,错误原因: (109, 'ReadFile', '管道已结束。')
|
||||
2024-07-04 17:18:14,994 pipe_utils.py[line:85] - ERROR - 数据接收失败,错误原因: (109, 'ReadFile', '管道已结束。')
|
||||
2024-07-04 17:20:39,388 pipe_utils.py[line:231] - ERROR - 发送指令失败,错误类型:(232, 'WriteFile', '管道正在被关闭。')
|
||||
2024-07-04 17:20:39,388 main.py[line:110] - ERROR - 处理失败
|
||||
2024-07-04 17:20:40,562 pipe_utils.py[line:231] - ERROR - 发送指令失败,错误类型:(232, 'WriteFile', '管道正在被关闭。')
|
||||
2024-07-04 17:20:40,563 main.py[line:110] - ERROR - 处理失败
|
||||
2024-07-04 17:20:41,738 pipe_utils.py[line:231] - ERROR - 发送指令失败,错误类型:(232, 'WriteFile', '管道正在被关闭。')
|
||||
2024-07-04 17:20:41,738 main.py[line:110] - ERROR - 处理失败
|
||||
2024-07-04 17:20:43,017 pipe_utils.py[line:231] - ERROR - 发送指令失败,错误类型:(232, 'WriteFile', '管道正在被关闭。')
|
||||
2024-07-04 17:20:43,017 main.py[line:110] - ERROR - 处理失败
|
||||
2024-07-04 17:20:44,275 pipe_utils.py[line:231] - ERROR - 发送指令失败,错误类型:(232, 'WriteFile', '管道正在被关闭。')
|
||||
2024-07-04 17:20:44,275 main.py[line:110] - ERROR - 处理失败
|
||||
2024-07-04 17:20:45,548 pipe_utils.py[line:231] - ERROR - 发送指令失败,错误类型:(232, 'WriteFile', '管道正在被关闭。')
|
||||
2024-07-04 17:20:45,548 main.py[line:110] - ERROR - 处理失败
|
||||
2024-07-04 17:20:46,743 pipe_utils.py[line:231] - ERROR - 发送指令失败,错误类型:(232, 'WriteFile', '管道正在被关闭。')
|
||||
2024-07-04 17:20:46,743 main.py[line:110] - ERROR - 处理失败
|
||||
2024-07-04 17:20:47,987 pipe_utils.py[line:231] - ERROR - 发送指令失败,错误类型:(232, 'WriteFile', '管道正在被关闭。')
|
||||
2024-07-04 17:20:47,987 main.py[line:110] - ERROR - 处理失败
|
||||
2024-07-04 17:20:49,183 pipe_utils.py[line:231] - ERROR - 发送指令失败,错误类型:(232, 'WriteFile', '管道正在被关闭。')
|
||||
2024-07-04 17:20:49,183 main.py[line:110] - ERROR - 处理失败
|
||||
2024-07-04 17:20:50,393 pipe_utils.py[line:231] - ERROR - 发送指令失败,错误类型:(232, 'WriteFile', '管道正在被关闭。')
|
||||
2024-07-04 17:20:50,394 main.py[line:110] - ERROR - 处理失败
|
||||
2024-07-04 17:20:51,724 pipe_utils.py[line:231] - ERROR - 发送指令失败,错误类型:(232, 'WriteFile', '管道正在被关闭。')
|
||||
2024-07-04 17:20:51,724 main.py[line:110] - ERROR - 处理失败
|
||||
2024-07-04 17:20:52,901 pipe_utils.py[line:231] - ERROR - 发送指令失败,错误类型:(232, 'WriteFile', '管道正在被关闭。')
|
||||
2024-07-04 17:20:52,901 main.py[line:110] - ERROR - 处理失败
|
||||
2024-07-04 17:20:54,161 pipe_utils.py[line:231] - ERROR - 发送指令失败,错误类型:(232, 'WriteFile', '管道正在被关闭。')
|
||||
2024-07-04 17:20:54,161 main.py[line:110] - ERROR - 处理失败
|
||||
2024-07-04 17:20:55,332 pipe_utils.py[line:231] - ERROR - 发送指令失败,错误类型:(232, 'WriteFile', '管道正在被关闭。')
|
||||
2024-07-04 17:20:55,333 main.py[line:110] - ERROR - 处理失败
|
||||
2024-07-04 17:20:56,561 pipe_utils.py[line:231] - ERROR - 发送指令失败,错误类型:(232, 'WriteFile', '管道正在被关闭。')
|
||||
2024-07-04 17:20:56,561 main.py[line:110] - ERROR - 处理失败
|
||||
2024-07-04 17:20:56,561 pipe_utils.py[line:85] - ERROR - 数据接收失败,错误原因: (109, 'ReadFile', '管道已结束。')
|
||||
2024-07-05 14:23:17,274 pipe_utils.py[line:85] - ERROR - 数据接收失败,错误原因: (109, 'ReadFile', '管道已结束。')
|
||||
2024-07-05 14:52:48,462 pipe_utils.py[line:85] - ERROR - 数据接收失败,错误原因: (109, 'ReadFile', '管道已结束。')
|
||||
2024-07-05 14:59:25,432 pipe_utils.py[line:231] - ERROR - 发送指令失败,错误类型:(232, 'WriteFile', '管道正在被关闭。')
|
||||
2024-07-05 14:59:25,433 main.py[line:110] - ERROR - 处理失败
|
||||
2024-07-05 14:59:25,433 pipe_utils.py[line:85] - ERROR - 数据接收失败,错误原因: (109, 'ReadFile', '管道已结束。')
|
||||
2024-07-05 15:21:42,677 pipe_utils.py[line:85] - ERROR - 数据接收失败,错误原因: (109, 'ReadFile', '管道已结束。')
|
||||
2024-07-06 15:39:01,858 pipe_utils.py[line:85] - ERROR - 数据接收失败,错误原因: (109, 'ReadFile', '管道已结束。')
|
||||
2024-07-06 15:46:25,324 pipe_utils.py[line:85] - ERROR - 数据接收失败,错误原因: (109, 'ReadFile', '管道已结束。')
|
||||
2024-07-06 16:31:01,725 pipe_utils.py[line:85] - ERROR - 数据接收失败,错误原因: (109, 'ReadFile', '管道已结束。')
|
||||
2024-07-06 16:32:57,727 pipe_utils.py[line:85] - ERROR - 数据接收失败,错误原因: (109, 'ReadFile', '管道已结束。')
|
||||
2024-07-06 16:35:39,825 pipe_utils.py[line:85] - ERROR - 数据接收失败,错误原因: (109, 'ReadFile', '管道已结束。')
|
||||
2024-07-06 16:57:43,916 pipe_utils.py[line:85] - ERROR - 数据接收失败,错误原因: (109, 'ReadFile', '管道已结束。')
|
||||
2024-07-06 17:28:44,904 pipe_utils.py[line:85] - ERROR - 数据接收失败,错误原因: (109, 'ReadFile', '管道已结束。')
|
||||
2024-07-06 17:42:03,094 pipe_utils.py[line:231] - ERROR - 发送指令失败,错误类型:(232, 'WriteFile', '管道正在被关闭。')
|
||||
2024-07-06 17:42:03,094 main.py[line:110] - ERROR - 处理失败
|
||||
2024-07-06 17:42:04,263 pipe_utils.py[line:231] - ERROR - 发送指令失败,错误类型:(232, 'WriteFile', '管道正在被关闭。')
|
||||
2024-07-06 17:42:04,263 main.py[line:110] - ERROR - 处理失败
|
||||
2024-07-06 17:42:05,507 pipe_utils.py[line:231] - ERROR - 发送指令失败,错误类型:(232, 'WriteFile', '管道正在被关闭。')
|
||||
2024-07-06 17:42:05,507 main.py[line:110] - ERROR - 处理失败
|
||||
2024-07-06 19:07:46,189 pipe_utils.py[line:85] - ERROR - 数据接收失败,错误原因: (109, 'ReadFile', '管道已结束。')
|
||||
2024-07-06 20:33:21,028 pipe_utils.py[line:85] - ERROR - 数据接收失败,错误原因: (109, 'ReadFile', '管道已结束。')
|
||||
2024-07-06 20:43:24,359 pipe_utils.py[line:85] - ERROR - 数据接收失败,错误原因: (109, 'ReadFile', '管道已结束。')
|
||||
2024-07-06 20:45:53,598 pipe_utils.py[line:231] - ERROR - 发送指令失败,错误类型:(232, 'WriteFile', '管道正在被关闭。')
|
||||
2024-07-06 20:45:53,599 main.py[line:110] - ERROR - 处理失败
|
||||
2024-07-06 20:45:54,751 pipe_utils.py[line:231] - ERROR - 发送指令失败,错误类型:(232, 'WriteFile', '管道正在被关闭。')
|
||||
2024-07-06 20:45:54,751 main.py[line:110] - ERROR - 处理失败
|
||||
2024-07-06 20:45:56,017 pipe_utils.py[line:231] - ERROR - 发送指令失败,错误类型:(232, 'WriteFile', '管道正在被关闭。')
|
||||
2024-07-06 20:45:56,017 main.py[line:110] - ERROR - 处理失败
|
||||
2024-07-06 20:45:56,017 pipe_utils.py[line:85] - ERROR - 数据接收失败,错误原因: (109, 'ReadFile', '管道已结束。')
|
||||
2024-07-07 09:05:50,186 pipe_utils.py[line:231] - ERROR - 发送指令失败,错误类型:(232, 'WriteFile', '管道正在被关闭。')
|
||||
2024-07-07 09:05:50,186 main.py[line:110] - ERROR - 处理失败
|
||||
2024-07-07 09:05:51,382 pipe_utils.py[line:231] - ERROR - 发送指令失败,错误类型:(232, 'WriteFile', '管道正在被关闭。')
|
||||
2024-07-07 09:05:51,382 main.py[line:110] - ERROR - 处理失败
|
||||
2024-07-07 09:05:52,583 pipe_utils.py[line:231] - ERROR - 发送指令失败,错误类型:(232, 'WriteFile', '管道正在被关闭。')
|
||||
2024-07-07 09:05:52,584 main.py[line:110] - ERROR - 处理失败
|
||||
2024-07-07 09:05:53,909 pipe_utils.py[line:231] - ERROR - 发送指令失败,错误类型:(232, 'WriteFile', '管道正在被关闭。')
|
||||
2024-07-07 09:05:53,909 main.py[line:110] - ERROR - 处理失败
|
||||
2024-07-07 09:05:55,070 pipe_utils.py[line:231] - ERROR - 发送指令失败,错误类型:(232, 'WriteFile', '管道正在被关闭。')
|
||||
2024-07-07 09:05:55,070 main.py[line:110] - ERROR - 处理失败
|
||||
2024-07-07 09:05:56,335 pipe_utils.py[line:231] - ERROR - 发送指令失败,错误类型:(232, 'WriteFile', '管道正在被关闭。')
|
||||
2024-07-07 09:05:56,335 main.py[line:110] - ERROR - 处理失败
|
||||
2024-07-07 09:05:57,471 pipe_utils.py[line:231] - ERROR - 发送指令失败,错误类型:(232, 'WriteFile', '管道正在被关闭。')
|
||||
2024-07-07 09:05:57,471 main.py[line:110] - ERROR - 处理失败
|
||||
2024-07-07 09:05:58,682 pipe_utils.py[line:231] - ERROR - 发送指令失败,错误类型:(232, 'WriteFile', '管道正在被关闭。')
|
||||
2024-07-07 09:05:58,682 main.py[line:110] - ERROR - 处理失败
|
||||
2024-07-07 09:05:59,811 pipe_utils.py[line:231] - ERROR - 发送指令失败,错误类型:(232, 'WriteFile', '管道正在被关闭。')
|
||||
2024-07-07 09:05:59,812 main.py[line:110] - ERROR - 处理失败
|
||||
2024-07-07 09:06:00,961 pipe_utils.py[line:231] - ERROR - 发送指令失败,错误类型:(232, 'WriteFile', '管道正在被关闭。')
|
||||
2024-07-07 09:06:00,961 main.py[line:110] - ERROR - 处理失败
|
||||
2024-07-07 09:06:02,190 pipe_utils.py[line:231] - ERROR - 发送指令失败,错误类型:(232, 'WriteFile', '管道正在被关闭。')
|
||||
2024-07-07 09:06:02,190 main.py[line:110] - ERROR - 处理失败
|
||||
2024-07-07 09:06:03,350 pipe_utils.py[line:231] - ERROR - 发送指令失败,错误类型:(232, 'WriteFile', '管道正在被关闭。')
|
||||
2024-07-07 09:06:03,350 main.py[line:110] - ERROR - 处理失败
|
||||
2024-07-07 09:06:04,553 pipe_utils.py[line:231] - ERROR - 发送指令失败,错误类型:(232, 'WriteFile', '管道正在被关闭。')
|
||||
2024-07-07 09:06:04,553 main.py[line:110] - ERROR - 处理失败
|
||||
2024-07-07 09:06:05,659 pipe_utils.py[line:231] - ERROR - 发送指令失败,错误类型:(232, 'WriteFile', '管道正在被关闭。')
|
||||
2024-07-07 09:06:05,660 main.py[line:110] - ERROR - 处理失败
|
||||
2024-07-07 09:06:06,869 pipe_utils.py[line:231] - ERROR - 发送指令失败,错误类型:(232, 'WriteFile', '管道正在被关闭。')
|
||||
2024-07-07 09:06:06,870 main.py[line:110] - ERROR - 处理失败
|
||||
2024-07-07 09:06:07,986 pipe_utils.py[line:231] - ERROR - 发送指令失败,错误类型:(232, 'WriteFile', '管道正在被关闭。')
|
||||
2024-07-07 09:06:07,986 main.py[line:110] - ERROR - 处理失败
|
||||
2024-07-07 09:06:09,130 pipe_utils.py[line:231] - ERROR - 发送指令失败,错误类型:(232, 'WriteFile', '管道正在被关闭。')
|
||||
2024-07-07 09:06:09,130 main.py[line:110] - ERROR - 处理失败
|
||||
2024-07-07 09:06:09,132 pipe_utils.py[line:85] - ERROR - 数据接收失败,错误原因: (109, 'ReadFile', '管道已结束。')
|
||||
2024-07-07 09:12:39,560 pipe_utils.py[line:85] - ERROR - 数据接收失败,错误原因: (109, 'ReadFile', '管道已结束。')
|
||||
2024-07-07 09:16:16,776 pipe_utils.py[line:85] - ERROR - 数据接收失败,错误原因: (109, 'ReadFile', '管道已结束。')
|
||||
2024-07-07 11:33:16,851 pipe_utils.py[line:85] - ERROR - 数据接收失败,错误原因: (109, 'ReadFile', '管道已结束。')
|
||||
2024-07-07 11:40:33,833 pipe_utils.py[line:85] - ERROR - 数据接收失败,错误原因: (109, 'ReadFile', '管道已结束。')
|
||||
2024-07-07 11:42:59,905 pipe_utils.py[line:85] - ERROR - 数据接收失败,错误原因: (109, 'ReadFile', '管道已结束。')
|
||||
2024-07-07 11:48:01,402 pipe_utils.py[line:85] - ERROR - 数据接收失败,错误原因: (109, 'ReadFile', '管道已结束。')
|
||||
2024-07-07 11:50:49,976 pipe_utils.py[line:85] - ERROR - 数据接收失败,错误原因: (109, 'ReadFile', '管道已结束。')
|
||||
2024-07-07 11:55:37,758 pipe_utils.py[line:85] - ERROR - 数据接收失败,错误原因: (109, 'ReadFile', '管道已结束。')
|
||||
2024-07-07 12:03:52,555 pipe_utils.py[line:85] - ERROR - 数据接收失败,错误原因: (109, 'ReadFile', '管道已结束。')
|
||||
2024-07-07 12:48:51,656 pipe_utils.py[line:162] - ERROR - 图像指令转换失败,数据长度错误
|
||||
2024-07-07 12:57:58,164 pipe_utils.py[line:85] - ERROR - 数据接收失败,错误原因: (109, 'ReadFile', '管道已结束。')
|
||||
2024-07-07 14:31:13,151 pipe_utils.py[line:85] - ERROR - 数据接收失败,错误原因: (109, 'ReadFile', '管道已结束。')
|
||||
2024-07-07 15:14:10,012 pipe_utils.py[line:231] - ERROR - 发送指令失败,错误类型:(232, 'WriteFile', '管道正在被关闭。')
|
||||
2024-07-07 15:14:10,012 main.py[line:110] - ERROR - 处理失败
|
||||
2024-07-07 15:14:11,366 pipe_utils.py[line:231] - ERROR - 发送指令失败,错误类型:(232, 'WriteFile', '管道正在被关闭。')
|
||||
2024-07-07 15:14:11,367 main.py[line:110] - ERROR - 处理失败
|
||||
2024-07-07 15:14:12,667 pipe_utils.py[line:231] - ERROR - 发送指令失败,错误类型:(232, 'WriteFile', '管道正在被关闭。')
|
||||
2024-07-07 15:14:12,667 main.py[line:110] - ERROR - 处理失败
|
||||
2024-07-07 15:14:13,975 pipe_utils.py[line:231] - ERROR - 发送指令失败,错误类型:(232, 'WriteFile', '管道正在被关闭。')
|
||||
2024-07-07 15:14:13,975 main.py[line:110] - ERROR - 处理失败
|
||||
2024-07-07 15:14:15,163 pipe_utils.py[line:231] - ERROR - 发送指令失败,错误类型:(232, 'WriteFile', '管道正在被关闭。')
|
||||
2024-07-07 15:14:15,163 main.py[line:110] - ERROR - 处理失败
|
||||
2024-07-07 15:14:16,442 pipe_utils.py[line:231] - ERROR - 发送指令失败,错误类型:(232, 'WriteFile', '管道正在被关闭。')
|
||||
2024-07-07 15:14:16,443 main.py[line:110] - ERROR - 处理失败
|
||||
2024-07-07 15:14:17,700 pipe_utils.py[line:231] - ERROR - 发送指令失败,错误类型:(232, 'WriteFile', '管道正在被关闭。')
|
||||
2024-07-07 15:14:17,700 main.py[line:110] - ERROR - 处理失败
|
||||
2024-07-07 15:14:18,901 pipe_utils.py[line:231] - ERROR - 发送指令失败,错误类型:(232, 'WriteFile', '管道正在被关闭。')
|
||||
2024-07-07 15:14:18,901 main.py[line:110] - ERROR - 处理失败
|
||||
2024-07-07 15:14:20,195 pipe_utils.py[line:231] - ERROR - 发送指令失败,错误类型:(232, 'WriteFile', '管道正在被关闭。')
|
||||
2024-07-07 15:14:20,195 main.py[line:110] - ERROR - 处理失败
|
||||
2024-07-07 15:14:21,538 pipe_utils.py[line:231] - ERROR - 发送指令失败,错误类型:(232, 'WriteFile', '管道正在被关闭。')
|
||||
2024-07-07 15:14:21,538 main.py[line:110] - ERROR - 处理失败
|
||||
2024-07-07 15:14:22,842 pipe_utils.py[line:231] - ERROR - 发送指令失败,错误类型:(232, 'WriteFile', '管道正在被关闭。')
|
||||
2024-07-07 15:14:22,842 main.py[line:110] - ERROR - 处理失败
|
||||
2024-07-07 15:14:24,019 pipe_utils.py[line:231] - ERROR - 发送指令失败,错误类型:(232, 'WriteFile', '管道正在被关闭。')
|
||||
2024-07-07 15:14:24,020 main.py[line:110] - ERROR - 处理失败
|
||||
2024-07-07 15:14:25,346 pipe_utils.py[line:231] - ERROR - 发送指令失败,错误类型:(232, 'WriteFile', '管道正在被关闭。')
|
||||
2024-07-07 15:14:25,346 main.py[line:110] - ERROR - 处理失败
|
||||
2024-07-07 15:14:26,540 pipe_utils.py[line:231] - ERROR - 发送指令失败,错误类型:(232, 'WriteFile', '管道正在被关闭。')
|
||||
2024-07-07 15:14:26,541 main.py[line:110] - ERROR - 处理失败
|
||||
2024-07-07 15:14:27,750 pipe_utils.py[line:231] - ERROR - 发送指令失败,错误类型:(232, 'WriteFile', '管道正在被关闭。')
|
||||
2024-07-07 15:14:27,750 main.py[line:110] - ERROR - 处理失败
|
||||
2024-07-07 15:14:29,060 pipe_utils.py[line:231] - ERROR - 发送指令失败,错误类型:(232, 'WriteFile', '管道正在被关闭。')
|
||||
2024-07-07 15:14:29,060 main.py[line:110] - ERROR - 处理失败
|
||||
2024-07-07 15:14:30,259 pipe_utils.py[line:231] - ERROR - 发送指令失败,错误类型:(232, 'WriteFile', '管道正在被关闭。')
|
||||
2024-07-07 15:14:30,259 main.py[line:110] - ERROR - 处理失败
|
||||
2024-07-07 15:14:30,280 pipe_utils.py[line:85] - ERROR - 数据接收失败,错误原因: (109, 'ReadFile', '管道已结束。')
|
||||
2024-07-07 15:29:47,675 pipe_utils.py[line:231] - ERROR - 发送指令失败,错误类型:(232, 'WriteFile', '管道正在被关闭。')
|
||||
2024-07-07 15:29:47,676 main.py[line:110] - ERROR - 处理失败
|
||||
2024-07-07 15:29:48,883 pipe_utils.py[line:231] - ERROR - 发送指令失败,错误类型:(232, 'WriteFile', '管道正在被关闭。')
|
||||
2024-07-07 15:29:48,883 main.py[line:110] - ERROR - 处理失败
|
||||
2024-07-07 15:29:50,076 pipe_utils.py[line:231] - ERROR - 发送指令失败,错误类型:(232, 'WriteFile', '管道正在被关闭。')
|
||||
2024-07-07 15:29:50,077 main.py[line:110] - ERROR - 处理失败
|
||||
2024-07-07 15:29:51,389 pipe_utils.py[line:231] - ERROR - 发送指令失败,错误类型:(232, 'WriteFile', '管道正在被关闭。')
|
||||
2024-07-07 15:29:51,389 main.py[line:110] - ERROR - 处理失败
|
||||
2024-07-07 15:29:52,601 pipe_utils.py[line:231] - ERROR - 发送指令失败,错误类型:(232, 'WriteFile', '管道正在被关闭。')
|
||||
2024-07-07 15:29:52,601 main.py[line:110] - ERROR - 处理失败
|
||||
2024-07-07 15:29:53,893 pipe_utils.py[line:231] - ERROR - 发送指令失败,错误类型:(232, 'WriteFile', '管道正在被关闭。')
|
||||
2024-07-07 15:29:53,893 main.py[line:110] - ERROR - 处理失败
|
||||
2024-07-07 15:29:55,103 pipe_utils.py[line:231] - ERROR - 发送指令失败,错误类型:(232, 'WriteFile', '管道正在被关闭。')
|
||||
2024-07-07 15:29:55,104 main.py[line:110] - ERROR - 处理失败
|
||||
2024-07-07 15:29:56,406 pipe_utils.py[line:231] - ERROR - 发送指令失败,错误类型:(232, 'WriteFile', '管道正在被关闭。')
|
||||
2024-07-07 15:29:56,406 main.py[line:110] - ERROR - 处理失败
|
||||
2024-07-07 15:29:57,596 pipe_utils.py[line:231] - ERROR - 发送指令失败,错误类型:(232, 'WriteFile', '管道正在被关闭。')
|
||||
2024-07-07 15:29:57,596 main.py[line:110] - ERROR - 处理失败
|
||||
2024-07-07 15:29:58,841 pipe_utils.py[line:231] - ERROR - 发送指令失败,错误类型:(232, 'WriteFile', '管道正在被关闭。')
|
||||
2024-07-07 15:29:58,841 main.py[line:110] - ERROR - 处理失败
|
||||
2024-07-07 15:30:00,179 pipe_utils.py[line:231] - ERROR - 发送指令失败,错误类型:(232, 'WriteFile', '管道正在被关闭。')
|
||||
2024-07-07 15:30:00,179 main.py[line:110] - ERROR - 处理失败
|
||||
2024-07-07 15:30:01,409 pipe_utils.py[line:231] - ERROR - 发送指令失败,错误类型:(232, 'WriteFile', '管道正在被关闭。')
|
||||
2024-07-07 15:30:01,410 main.py[line:110] - ERROR - 处理失败
|
||||
2024-07-07 15:30:02,697 pipe_utils.py[line:231] - ERROR - 发送指令失败,错误类型:(232, 'WriteFile', '管道正在被关闭。')
|
||||
2024-07-07 15:30:02,698 main.py[line:110] - ERROR - 处理失败
|
||||
2024-07-07 15:30:03,898 pipe_utils.py[line:231] - ERROR - 发送指令失败,错误类型:(232, 'WriteFile', '管道正在被关闭。')
|
||||
2024-07-07 15:30:03,899 main.py[line:110] - ERROR - 处理失败
|
||||
2024-07-07 15:30:05,199 pipe_utils.py[line:231] - ERROR - 发送指令失败,错误类型:(232, 'WriteFile', '管道正在被关闭。')
|
||||
2024-07-07 15:30:05,199 main.py[line:110] - ERROR - 处理失败
|
||||
2024-07-07 15:30:06,427 pipe_utils.py[line:231] - ERROR - 发送指令失败,错误类型:(232, 'WriteFile', '管道正在被关闭。')
|
||||
2024-07-07 15:30:06,427 main.py[line:110] - ERROR - 处理失败
|
||||
2024-07-07 15:30:07,616 pipe_utils.py[line:231] - ERROR - 发送指令失败,错误类型:(232, 'WriteFile', '管道正在被关闭。')
|
||||
2024-07-07 15:30:07,616 main.py[line:110] - ERROR - 处理失败
|
||||
2024-07-07 15:30:07,637 pipe_utils.py[line:85] - ERROR - 数据接收失败,错误原因: (109, 'ReadFile', '管道已结束。')
|
||||
2024-07-07 16:18:38,077 pipe_utils.py[line:231] - ERROR - 发送指令失败,错误类型:(232, 'WriteFile', '管道正在被关闭。')
|
||||
2024-07-07 16:18:38,078 main.py[line:110] - ERROR - 处理失败
|
||||
2024-07-07 16:18:39,022 pipe_utils.py[line:231] - ERROR - 发送指令失败,错误类型:(232, 'WriteFile', '管道正在被关闭。')
|
||||
2024-07-07 16:18:39,023 main.py[line:110] - ERROR - 处理失败
|
||||
2024-07-07 16:18:40,052 pipe_utils.py[line:231] - ERROR - 发送指令失败,错误类型:(232, 'WriteFile', '管道正在被关闭。')
|
||||
2024-07-07 16:18:40,053 main.py[line:110] - ERROR - 处理失败
|
||||
2024-07-07 16:18:41,201 pipe_utils.py[line:231] - ERROR - 发送指令失败,错误类型:(232, 'WriteFile', '管道正在被关闭。')
|
||||
2024-07-07 16:18:41,201 main.py[line:110] - ERROR - 处理失败
|
||||
2024-07-07 16:18:42,336 pipe_utils.py[line:231] - ERROR - 发送指令失败,错误类型:(232, 'WriteFile', '管道正在被关闭。')
|
||||
2024-07-07 16:18:42,336 main.py[line:110] - ERROR - 处理失败
|
||||
2024-07-07 16:18:43,586 pipe_utils.py[line:231] - ERROR - 发送指令失败,错误类型:(232, 'WriteFile', '管道正在被关闭。')
|
||||
2024-07-07 16:18:43,587 main.py[line:110] - ERROR - 处理失败
|
||||
2024-07-07 16:18:44,791 pipe_utils.py[line:231] - ERROR - 发送指令失败,错误类型:(232, 'WriteFile', '管道正在被关闭。')
|
||||
2024-07-07 16:18:44,791 main.py[line:110] - ERROR - 处理失败
|
||||
2024-07-07 16:28:01,454 pipe_utils.py[line:85] - ERROR - 数据接收失败,错误原因: (109, 'ReadFile', '管道已结束。')
|
||||
2024-07-07 16:50:24,922 pipe_utils.py[line:85] - ERROR - 数据接收失败,错误原因: (109, 'ReadFile', '管道已结束。')
|
||||
2024-07-07 17:37:51,829 pipe_utils.py[line:104] - ERROR - 数据接收失败,错误原因: (109, 'ReadFile', '管道已结束。')
|
||||
2024-07-07 17:55:04,504 pipe_utils.py[line:85] - ERROR - 数据接收失败,错误原因: (109, 'ReadFile', '管道已结束。')
|
||||
2024-07-07 17:59:48,356 pipe_utils.py[line:85] - ERROR - 数据接收失败,错误原因: (109, 'ReadFile', '管道已结束。')
|
||||
2024-07-07 18:25:13,744 pipe_utils.py[line:85] - ERROR - 数据接收失败,错误原因: (109, 'ReadFile', '管道已结束。')
|
||||
2024-07-07 18:55:15,790 pipe_utils.py[line:85] - ERROR - 数据接收失败,错误原因: (109, 'ReadFile', '管道已结束。')
|
||||
2024-07-07 19:10:32,354 pipe_utils.py[line:85] - ERROR - 数据接收失败,错误原因: (109, 'ReadFile', '管道已结束。')
|
||||
2024-07-08 09:24:38,903 pipe_utils.py[line:85] - ERROR - 数据接收失败,错误原因: (109, 'ReadFile', '管道已结束。')
|
||||
2024-07-08 09:39:36,127 pipe_utils.py[line:85] - ERROR - 数据接收失败,错误原因: (109, 'ReadFile', '管道已结束。')
|
||||
2024-07-08 09:45:37,431 pipe_utils.py[line:85] - ERROR - 数据接收失败,错误原因: (109, 'ReadFile', '管道已结束。')
|
||||
2024-07-08 11:09:16,559 pipe_utils.py[line:85] - ERROR - 数据接收失败,错误原因: (109, 'ReadFile', '管道已结束。')
|
||||
2024-07-08 11:13:06,783 pipe_utils.py[line:85] - ERROR - 数据接收失败,错误原因: (109, 'ReadFile', '管道已结束。')
|
||||
2024-07-08 11:27:00,565 pipe_utils.py[line:85] - ERROR - 数据接收失败,错误原因: (109, 'ReadFile', '管道已结束。')
|
||||
2024-07-08 11:40:36,810 pipe_utils.py[line:85] - ERROR - 数据接收失败,错误原因: (109, 'ReadFile', '管道已结束。')
|
||||
2024-07-08 12:02:35,135 pipe_utils.py[line:85] - ERROR - 数据接收失败,错误原因: (109, 'ReadFile', '管道已结束。')
|
||||
2024-07-08 12:42:16,270 pipe_utils.py[line:85] - ERROR - 数据接收失败,错误原因: (109, 'ReadFile', '管道已结束。')
|
||||
2024-07-08 12:44:05,091 pipe_utils.py[line:85] - ERROR - 数据接收失败,错误原因: (109, 'ReadFile', '管道已结束。')
|
||||
2024-07-08 13:00:54,572 pipe_utils.py[line:85] - ERROR - 数据接收失败,错误原因: (109, 'ReadFile', '管道已结束。')
|
||||
2024-07-08 13:04:07,171 pipe_utils.py[line:85] - ERROR - 数据接收失败,错误原因: (109, 'ReadFile', '管道已结束。')
|
||||
2024-07-08 13:08:00,371 pipe_utils.py[line:85] - ERROR - 数据接收失败,错误原因: (109, 'ReadFile', '管道已结束。')
|
||||
2024-07-08 13:12:10,509 pipe_utils.py[line:85] - ERROR - 数据接收失败,错误原因: (109, 'ReadFile', '管道已结束。')
|
||||
2024-07-08 14:40:30,277 pipe_utils.py[line:85] - ERROR - 数据接收失败,错误原因: (109, 'ReadFile', '管道已结束。')
|
||||
2024-07-08 14:43:28,816 pipe_utils.py[line:85] - ERROR - 数据接收失败,错误原因: (109, 'ReadFile', '管道已结束。')
|
||||
2024-07-08 15:17:54,843 pipe_utils.py[line:85] - ERROR - 数据接收失败,错误原因: (109, 'ReadFile', '管道已结束。')
|
||||
2024-07-08 15:55:38,941 pipe_utils.py[line:85] - ERROR - 数据接收失败,错误原因: (109, 'ReadFile', '管道已结束。')
|
||||
2024-07-08 15:59:18,181 pipe_utils.py[line:85] - ERROR - 数据接收失败,错误原因: (109, 'ReadFile', '管道已结束。')
|
||||
2024-07-08 16:01:33,259 pipe_utils.py[line:85] - ERROR - 数据接收失败,错误原因: (109, 'ReadFile', '管道已结束。')
|
||||
2024-07-08 16:08:34,599 pipe_utils.py[line:85] - ERROR - 数据接收失败,错误原因: (109, 'ReadFile', '管道已结束。')
|
||||
2024-07-08 16:11:00,155 pipe_utils.py[line:85] - ERROR - 数据接收失败,错误原因: (109, 'ReadFile', '管道已结束。')
|
||||
2024-07-08 16:43:42,636 pipe_utils.py[line:85] - ERROR - 数据接收失败,错误原因: (109, 'ReadFile', '管道已结束。')
|
||||
2024-07-08 16:50:43,173 pipe_utils.py[line:85] - ERROR - 数据接收失败,错误原因: (109, 'ReadFile', '管道已结束。')
|
||||
2024-07-08 17:08:09,783 pipe_utils.py[line:85] - ERROR - 数据接收失败,错误原因: (109, 'ReadFile', '管道已结束。')
|
||||
2024-07-08 17:16:04,619 pipe_utils.py[line:85] - ERROR - 数据接收失败,错误原因: (109, 'ReadFile', '管道已结束。')
|
||||
2024-07-08 17:40:47,970 pipe_utils.py[line:85] - ERROR - 数据接收失败,错误原因: (109, 'ReadFile', '管道已结束。')
|
||||
2024-07-08 17:48:37,988 pipe_utils.py[line:85] - ERROR - 数据接收失败,错误原因: (109, 'ReadFile', '管道已结束。')
|
||||
2024-07-08 17:57:01,928 pipe_utils.py[line:85] - ERROR - 数据接收失败,错误原因: (109, 'ReadFile', '管道已结束。')
|
||||
2024-07-08 18:34:11,766 pipe_utils.py[line:85] - ERROR - 数据接收失败,错误原因: (109, 'ReadFile', '管道已结束。')
|
||||
2024-07-08 18:35:40,659 pipe_utils.py[line:85] - ERROR - 数据接收失败,错误原因: (109, 'ReadFile', '管道已结束。')
|
||||
2024-07-09 08:55:35,459 pipe_utils.py[line:85] - ERROR - 数据接收失败,错误原因: (109, 'ReadFile', '管道已结束。')
|
||||
2024-07-09 09:02:26,287 pipe_utils.py[line:162] - ERROR - 图像指令转换失败,数据长度错误
|
||||
2024-07-09 09:10:57,173 pipe_utils.py[line:104] - ERROR - 数据接收失败,错误原因: (109, 'ReadFile', '管道已结束。')
|
||||
2024-07-09 09:15:43,719 pipe_utils.py[line:162] - ERROR - 图像指令转换失败,数据长度错误
|
||||
2024-07-09 09:23:08,794 pipe_utils.py[line:85] - ERROR - 数据接收失败,错误原因: (109, 'ReadFile', '管道已结束。')
|
||||
2024-07-09 10:18:50,702 pipe_utils.py[line:162] - ERROR - 图像指令转换失败,数据长度错误
|
||||
2024-07-09 10:38:34,151 pipe_utils.py[line:162] - ERROR - 图像指令转换失败,数据长度错误
|
||||
2024-07-09 10:45:15,487 pipe_utils.py[line:85] - ERROR - 数据接收失败,错误原因: (109, 'ReadFile', '管道已结束。')
|
||||
2024-07-09 11:03:10,520 pipe_utils.py[line:85] - ERROR - 数据接收失败,错误原因: (109, 'ReadFile', '管道已结束。')
|
||||
2024-07-09 11:09:11,430 pipe_utils.py[line:85] - ERROR - 数据接收失败,错误原因: (109, 'ReadFile', '管道已结束。')
|
||||
2024-07-09 11:16:00,876 pipe_utils.py[line:85] - ERROR - 数据接收失败,错误原因: (109, 'ReadFile', '管道已结束。')
|
||||
2024-07-09 15:22:28,025 pipe_utils.py[line:85] - ERROR - 数据接收失败,错误原因: (109, 'ReadFile', '管道已结束。')
|
||||
2024-07-09 15:27:28,876 pipe_utils.py[line:85] - ERROR - 数据接收失败,错误原因: (109, 'ReadFile', '管道已结束。')
|
||||
2024-07-09 15:49:20,318 pipe_utils.py[line:85] - ERROR - 数据接收失败,错误原因: (109, 'ReadFile', '管道已结束。')
|
||||
2024-07-09 16:14:06,963 pipe_utils.py[line:85] - ERROR - 数据接收失败,错误原因: (109, 'ReadFile', '管道已结束。')
|
||||
2024-07-09 17:12:28,074 pipe_utils.py[line:85] - ERROR - 数据接收失败,错误原因: (109, 'ReadFile', '管道已结束。')
|
||||
2024-07-09 17:21:46,134 pipe_utils.py[line:85] - ERROR - 数据接收失败,错误原因: (109, 'ReadFile', '管道已结束。')
|
||||
2024-07-09 18:42:35,725 pipe_utils.py[line:85] - ERROR - 数据接收失败,错误原因: (109, 'ReadFile', '管道已结束。')
|
||||
2024-07-09 18:48:46,486 pipe_utils.py[line:85] - ERROR - 数据接收失败,错误原因: (109, 'ReadFile', '管道已结束。')
|
||||
2024-07-09 18:49:59,862 pipe_utils.py[line:85] - ERROR - 数据接收失败,错误原因: (109, 'ReadFile', '管道已结束。')
|
||||
2024-07-09 18:53:36,014 pipe_utils.py[line:85] - ERROR - 数据接收失败,错误原因: (109, 'ReadFile', '管道已结束。')
|
||||
2024-07-09 18:55:27,600 pipe_utils.py[line:85] - ERROR - 数据接收失败,错误原因: (109, 'ReadFile', '管道已结束。')
|
||||
2024-07-09 19:04:17,082 pipe_utils.py[line:85] - ERROR - 数据接收失败,错误原因: (109, 'ReadFile', '管道已结束。')
|
||||
2024-07-09 19:08:17,174 pipe_utils.py[line:85] - ERROR - 数据接收失败,错误原因: (109, 'ReadFile', '管道已结束。')
|
||||
2024-07-10 06:26:42,776 pipe_utils.py[line:85] - ERROR - 数据接收失败,错误原因: (109, 'ReadFile', '管道已结束。')
|
||||
2024-07-10 07:01:40,315 pipe_utils.py[line:85] - ERROR - 数据接收失败,错误原因: (109, 'ReadFile', '管道已结束。')
|
||||
2024-07-10 08:26:27,343 pipe_utils.py[line:231] - ERROR - 发送指令失败,错误类型:(232, 'WriteFile', '管道正在被关闭。')
|
||||
2024-07-10 08:26:27,343 main.py[line:113] - ERROR - 处理失败
|
||||
2024-07-10 08:26:27,345 pipe_utils.py[line:85] - ERROR - 数据接收失败,错误原因: (109, 'ReadFile', '管道已结束。')
|
||||
2024-07-10 09:09:42,450 pipe_utils.py[line:85] - ERROR - 数据接收失败,错误原因: (109, 'ReadFile', '管道已结束。')
|
||||
2024-07-10 10:06:33,515 pipe_utils.py[line:85] - ERROR - 数据接收失败,错误原因: (109, 'ReadFile', '管道已结束。')
|
||||
2024-07-10 11:43:46,982 pipe_utils.py[line:85] - ERROR - 数据接收失败,错误原因: (109, 'ReadFile', '管道已结束。')
|
||||
2024-07-10 12:09:14,853 pipe_utils.py[line:85] - ERROR - 数据接收失败,错误原因: (109, 'ReadFile', '管道已结束。')
|
||||
2024-07-10 12:12:40,941 pipe_utils.py[line:85] - ERROR - 数据接收失败,错误原因: (109, 'ReadFile', '管道已结束。')
|
||||
2024-07-10 12:18:01,000 pipe_utils.py[line:85] - ERROR - 数据接收失败,错误原因: (109, 'ReadFile', '管道已结束。')
|
||||
2024-07-10 12:25:47,254 pipe_utils.py[line:85] - ERROR - 数据接收失败,错误原因: (109, 'ReadFile', '管道已结束。')
|
||||
2024-07-10 14:14:58,422 pipe_utils.py[line:85] - ERROR - 数据接收失败,错误原因: (109, 'ReadFile', '管道已结束。')
|
||||
2024-07-10 14:18:28,047 pipe_utils.py[line:85] - ERROR - 数据接收失败,错误原因: (109, 'ReadFile', '管道已结束。')
|
||||
2024-07-10 14:21:52,725 pipe_utils.py[line:85] - ERROR - 数据接收失败,错误原因: (109, 'ReadFile', '管道已结束。')
|
||||
2024-07-10 14:24:46,863 pipe_utils.py[line:85] - ERROR - 数据接收失败,错误原因: (109, 'ReadFile', '管道已结束。')
|
||||
2024-07-10 14:35:13,271 pipe_utils.py[line:85] - ERROR - 数据接收失败,错误原因: (109, 'ReadFile', '管道已结束。')
|
||||
2024-07-10 14:38:22,932 pipe_utils.py[line:85] - ERROR - 数据接收失败,错误原因: (109, 'ReadFile', '管道已结束。')
|
||||
2024-07-10 17:21:05,363 pipe_utils.py[line:85] - ERROR - 数据接收失败,错误原因: (109, 'ReadFile', '管道已结束。')
|
||||
2024-07-12 11:41:03,215 pipe_utils.py[line:85] - ERROR - 数据接收失败,错误原因: (109, 'ReadFile', '管道已结束。')
|
||||
2024-07-12 11:43:19,922 pipe_utils.py[line:85] - ERROR - 数据接收失败,错误原因: (109, 'ReadFile', '管道已结束。')
|
||||
2024-07-12 11:48:49,239 pipe_utils.py[line:85] - ERROR - 数据接收失败,错误原因: (109, 'ReadFile', '管道已结束。')
|
||||
2024-07-12 11:51:05,972 pipe_utils.py[line:85] - ERROR - 数据接收失败,错误原因: (109, 'ReadFile', '管道已结束。')
|
||||
2024-07-12 11:53:49,877 pipe_utils.py[line:85] - ERROR - 数据接收失败,错误原因: (109, 'ReadFile', '管道已结束。')
|
||||
2024-07-12 12:06:22,516 pipe_utils.py[line:85] - ERROR - 数据接收失败,错误原因: (109, 'ReadFile', '管道已结束。')
|
||||
2024-07-12 13:18:06,630 pipe_utils.py[line:85] - ERROR - 数据接收失败,错误原因: (109, 'ReadFile', '管道已结束。')
|
||||
2024-07-12 13:24:32,560 pipe_utils.py[line:85] - ERROR - 数据接收失败,错误原因: (109, 'ReadFile', '管道已结束。')
|
||||
2024-07-12 13:27:28,554 pipe_utils.py[line:85] - ERROR - 数据接收失败,错误原因: (109, 'ReadFile', '管道已结束。')
|
||||
2024-07-12 13:31:09,505 pipe_utils.py[line:85] - ERROR - 数据接收失败,错误原因: (109, 'ReadFile', '管道已结束。')
|
||||
2024-07-12 13:35:34,850 pipe_utils.py[line:85] - ERROR - 数据接收失败,错误原因: (109, 'ReadFile', '管道已结束。')
|
||||
2024-07-12 13:39:31,434 pipe_utils.py[line:85] - ERROR - 数据接收失败,错误原因: (109, 'ReadFile', '管道已结束。')
|
||||
2024-07-12 13:46:11,927 pipe_utils.py[line:85] - ERROR - 数据接收失败,错误原因: (109, 'ReadFile', '管道已结束。')
|
||||
2024-07-12 13:49:21,103 pipe_utils.py[line:85] - ERROR - 数据接收失败,错误原因: (109, 'ReadFile', '管道已结束。')
|
||||
2024-07-12 13:52:53,712 pipe_utils.py[line:85] - ERROR - 数据接收失败,错误原因: (109, 'ReadFile', '管道已结束。')
|
||||
2024-07-12 13:57:44,190 pipe_utils.py[line:85] - ERROR - 数据接收失败,错误原因: (109, 'ReadFile', '管道已结束。')
|
||||
2024-07-12 15:43:52,570 pipe_utils.py[line:85] - ERROR - 数据接收失败,错误原因: (109, 'ReadFile', '管道已结束。')
|
||||
2024-07-12 16:09:54,143 pipe_utils.py[line:85] - ERROR - 数据接收失败,错误原因: (109, 'ReadFile', '管道已结束。')
|
||||
2024-07-12 17:43:57,577 pipe_utils.py[line:85] - ERROR - 数据接收失败,错误原因: (109, 'ReadFile', '管道已结束。')
|
||||
2024-07-12 18:15:56,608 pipe_utils.py[line:85] - ERROR - 数据接收失败,错误原因: (109, 'ReadFile', '管道已结束。')
|
||||
2024-07-12 18:19:34,912 pipe_utils.py[line:85] - ERROR - 数据接收失败,错误原因: (109, 'ReadFile', '管道已结束。')
|
||||
2024-07-12 18:24:31,666 pipe_utils.py[line:85] - ERROR - 数据接收失败,错误原因: (109, 'ReadFile', '管道已结束。')
|
||||
2024-07-12 18:28:53,782 pipe_utils.py[line:85] - ERROR - 数据接收失败,错误原因: (109, 'ReadFile', '管道已结束。')
|
||||
2024-07-12 18:32:02,373 pipe_utils.py[line:85] - ERROR - 数据接收失败,错误原因: (109, 'ReadFile', '管道已结束。')
|
||||
2024-07-12 18:36:43,949 pipe_utils.py[line:85] - ERROR - 数据接收失败,错误原因: (109, 'ReadFile', '管道已结束。')
|
||||
2024-07-12 18:42:14,595 pipe_utils.py[line:85] - ERROR - 数据接收失败,错误原因: (109, 'ReadFile', '管道已结束。')
|
||||
2024-07-12 18:46:56,102 pipe_utils.py[line:85] - ERROR - 数据接收失败,错误原因: (109, 'ReadFile', '管道已结束。')
|
||||
2024-07-14 18:55:44,441 pipe_utils.py[line:85] - ERROR - 数据接收失败,错误原因: (109, 'ReadFile', '管道已结束。')
|
||||
2024-07-14 19:10:42,177 pipe_utils.py[line:85] - ERROR - 数据接收失败,错误原因: (109, 'ReadFile', '管道已结束。')
|
||||
2024-07-14 19:39:08,500 pipe_utils.py[line:85] - ERROR - 数据接收失败,错误原因: (109, 'ReadFile', '管道已结束。')
|
||||
2024-07-14 20:13:21,091 pipe_utils.py[line:85] - ERROR - 数据接收失败,错误原因: (109, 'ReadFile', '管道已结束。')
|
||||
2024-07-14 20:15:58,584 pipe_utils.py[line:85] - ERROR - 数据接收失败,错误原因: (109, 'ReadFile', '管道已结束。')
|
||||
2024-07-14 20:21:29,532 pipe_utils.py[line:85] - ERROR - 数据接收失败,错误原因: (109, 'ReadFile', '管道已结束。')
|
||||
2024-07-14 20:26:05,871 pipe_utils.py[line:85] - ERROR - 数据接收失败,错误原因: (109, 'ReadFile', '管道已结束。')
|
||||
2024-07-14 20:31:43,184 pipe_utils.py[line:85] - ERROR - 数据接收失败,错误原因: (109, 'ReadFile', '管道已结束。')
|
||||
2024-07-14 21:55:12,612 pipe_utils.py[line:85] - ERROR - 数据接收失败,错误原因: (109, 'ReadFile', '管道已结束。')
|
||||
2024-07-14 21:57:48,492 pipe_utils.py[line:85] - ERROR - 数据接收失败,错误原因: (109, 'ReadFile', '管道已结束。')
|
||||
2024-07-14 22:03:20,562 pipe_utils.py[line:85] - ERROR - 数据接收失败,错误原因: (109, 'ReadFile', '管道已结束。')
|
||||
2024-07-14 22:05:51,415 pipe_utils.py[line:85] - ERROR - 数据接收失败,错误原因: (109, 'ReadFile', '管道已结束。')
|
||||
2024-07-15 23:29:16,269 pipe_utils.py[line:85] - ERROR - 数据接收失败,错误原因: (109, 'ReadFile', '管道已结束。')
|
||||
2024-07-15 23:34:33,796 pipe_utils.py[line:85] - ERROR - 数据接收失败,错误原因: (109, 'ReadFile', '管道已结束。')
|
||||
2024-07-15 23:49:43,143 pipe_utils.py[line:85] - ERROR - 数据接收失败,错误原因: (109, 'ReadFile', '管道已结束。')
|
||||
2024-07-16 00:44:00,856 pipe_utils.py[line:85] - ERROR - 数据接收失败,错误原因: (109, 'ReadFile', '管道已结束。')
|
||||
2024-07-16 17:41:22,234 pipe_utils.py[line:85] - ERROR - 数据接收失败,错误原因: (109, 'ReadFile', '管道已结束。')
|
||||
2024-07-16 19:23:17,696 pipe_utils.py[line:85] - ERROR - 数据接收失败,错误原因: (109, 'ReadFile', '管道已结束。')
|
||||
2024-07-18 12:18:32,533 pipe_utils.py[line:85] - ERROR - 数据接收失败,错误原因: (109, 'ReadFile', '管道已结束。')
|
||||
2024-07-18 12:20:15,008 pipe_utils.py[line:85] - ERROR - 数据接收失败,错误原因: (109, 'ReadFile', '管道已结束。')
|
||||
2024-07-18 12:24:47,331 pipe_utils.py[line:85] - ERROR - 数据接收失败,错误原因: (109, 'ReadFile', '管道已结束。')
|
||||
2024-07-18 13:05:01,439 pipe_utils.py[line:85] - ERROR - 数据接收失败,错误原因: (109, 'ReadFile', '管道已结束。')
|
||||
2024-07-18 13:05:42,329 pipe_utils.py[line:85] - ERROR - 数据接收失败,错误原因: (109, 'ReadFile', '管道已结束。')
|
||||
2024-07-18 13:06:17,381 pipe_utils.py[line:85] - ERROR - 数据接收失败,错误原因: (109, 'ReadFile', '管道已结束。')
|
||||
2024-07-18 13:16:35,878 pipe_utils.py[line:85] - ERROR - 数据接收失败,错误原因: (109, 'ReadFile', '管道已结束。')
|
||||
2024-07-18 13:22:42,129 pipe_utils.py[line:85] - ERROR - 数据接收失败,错误原因: (109, 'ReadFile', '管道已结束。')
|
||||
2024-07-18 14:07:31,788 pipe_utils.py[line:85] - ERROR - 数据接收失败,错误原因: (109, 'ReadFile', '管道已结束。')
|
||||
2024-07-18 14:08:39,988 pipe_utils.py[line:85] - ERROR - 数据接收失败,错误原因: (109, 'ReadFile', '管道已结束。')
|
||||
2024-07-18 14:09:56,546 pipe_utils.py[line:85] - ERROR - 数据接收失败,错误原因: (109, 'ReadFile', '管道已结束。')
|
||||
2024-07-18 14:10:55,811 pipe_utils.py[line:85] - ERROR - 数据接收失败,错误原因: (109, 'ReadFile', '管道已结束。')
|
||||
2024-07-18 14:11:57,781 pipe_utils.py[line:85] - ERROR - 数据接收失败,错误原因: (109, 'ReadFile', '管道已结束。')
|
||||
2024-07-18 14:12:58,772 pipe_utils.py[line:85] - ERROR - 数据接收失败,错误原因: (109, 'ReadFile', '管道已结束。')
|
||||
2024-07-18 14:25:50,717 pipe_utils.py[line:85] - ERROR - 数据接收失败,错误原因: (109, 'ReadFile', '管道已结束。')
|
||||
@ -287,7 +287,7 @@ def cutout(im, labels, p=0.5):
|
||||
xmax = min(w, xmin + mask_w)
|
||||
ymax = min(h, ymin + mask_h)
|
||||
|
||||
# apply random color mask
|
||||
# apply random color leaf
|
||||
im[ymin:ymax, xmin:xmax] = [random.randint(64, 191) for _ in range(3)]
|
||||
|
||||
# return unobscured labels
|
||||
@ -1048,7 +1048,7 @@ def non_max_suppression(
|
||||
merge = False # use merge-NMS
|
||||
|
||||
t = time.time()
|
||||
mi = 5 + nc # mask start index
|
||||
mi = 5 + nc # leaf start index
|
||||
output = [torch.zeros((0, 6 + nm), device=prediction.device)] * bs
|
||||
for xi, x in enumerate(prediction): # image index, image inference
|
||||
# Apply constraints
|
||||
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user