ReadMe.txt 6.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105
  1. v0.5.9.2 增加了图片保存,自动定期删除功能;增加了histogram生成时,增加权重。
  2. v0.5.9.3 压叶切割点识别结果,不能用于切割,将切割点改成分叉点间,靠近右侧三分之一位置
  3. v0.5.9.4 去掉切后重识别相关的代码;增加识别结果的图片;修改stem_x0,stem_x1的识别方法;分叉中点作为切割点;适用于不压叶的情况
  4. v0.5.9.5 砧木切割点识别中,有的叶子较大且下垂,识别中将叶子识别成茎,造成错误,修改茎识别方法get_stem_x_range()
  5. v0.5.9.6 1)修改旋转叶展识别方法,改用最大叶宽的图像分叉y值;
  6. 2)配置文件中
  7. 增加
  8. rs_min_hist_value: 5
  9. 修改
  10. oa_min_hist_value: 5
  11. oa_stem_x_padding: 40
  12. 3)大叶下垂识别茎位置,增加中心点定位,在中心点的优选,然后计算var选择var大的
  13. 4)返回结果中增加 double rs_cut_lpoint_x;//砧木下切割点x位置,毫米
  14. double rs_cut_lpoint_y;//砧木下切割点y位置,毫米
  15. double sc_cut_lpoint_x;//穗苗切割下点x位置,毫米
  16. double sc_cut_lpoint_y;//穗苗切割下点y位置,毫米
  17. 去除曲线长度
  18. v0.5.9.7 修改保存图片的位置,翻转,填充后的图片保存
  19. v0.5.9.8
  20. 1)修改最优角度识别中单调情况的算法,采用最大点的角度(原来3点二次差值会出现较大误差)
  21. 2)去掉最优角度识别,人工上料保证叶展方向,拍照一次识别分叉点y高度(目前代码没有改动)
  22. 3)最优角度识别infer函数增加输出日志:分叉点和根点y的像素值和毫米值
  23. v0.5.9.9 最优角度识别,append方法,返回当时的分叉点y坐标,最低点y坐标
  24. 实现一次图像识别返回结果(适用于人工上料,不自动旋转的情况),调用流程不变,只是调用次数为1
  25. 增加返回参数 double rs_oa_stem_y_fork;//茎分叉点y,毫米
  26. double rs_oa_clamp_y_end;//茎可视下端y,毫米
  27. v0.5.9.10 增加砧木切割点间连线
  28. v0.5.9.11 增加接口调用进入、离开的日志信息; 改rs_stem_dia_mp: 9.6e-001
  29. v0.5.9.12 穗苗上切割点识别修改,改用中值法取茎粗,达到茎粗(或95百分位)位置为上切割点
  30. v0.5.9.13 1)穗苗切割点有识别不到的情况(因为苗倾斜角度过大),修改(扩大)识别范围
  31. 2)砧木分叉点检测方法(通过滑动平均),不稳定,可能出现不能检测到分叉点的情况
  32. 砧木准确的上切割点识别方法
  33. v0.5.9.14 修改测试中穗苗切割点检测出现bug,vector越界问题
  34. 修改 sc_stem_ymax_padding: 200
  35. v0.5.9.15 针对砧木旋转工位分叉点识别,修改util.cpp中的get_stem_x_range()
  36. 修改参数 rs_morph_radius: 2
  37. rs_morph_iteration: 5
  38. 修改砧木图像分割方法为直接二值化,然后close方法,用上述新参数,实现去毛刺
  39. 砧木col方向的histogram,通过中值滤波再次去毛刺
  40. 砧木下切割点位置换算bug修改
  41. v0.5.9.16 砧木切割工位切割点检测分2步
  42. 0)砧木分叉点检测方法,旋转工位和切割工位函数分开
  43. 1)原来的方法检测分叉点y坐标get_stem_y_fork_rs(),通过直径变化系数和直径(已知直径)偏差系数确定分叉点,
  44. 并限定在茎根部和茎最宽位置(通过x0和x1限定)找出最大指定的方法确定分叉y值
  45. 2)在1)的基础上增加get_stem_y_fork_rs_update()函数,基于1)中的结果,
  46. 实现茎中心线检测;
  47. 带角度的x方向padding图像区域剪裁;
  48. 找出外边缘,计算中心线到边缘的最小距离;
  49. 找出中线上点最大距离的点作为分叉参考点
  50. 3)修改参数 rs_row_th_ratio: 1.1999999999999999e+000
  51. 4) 用到flann,增加opencv_flann2410d.lib
  52. v0.5.9.17 增加砧木切割工位切割点偏移参数
  53. rs_cut_point_offset_ratio: 5.0000000000000000e-001
  54. v0.5.9.18 怀疑内存泄露,检测优化
  55. 1)高速连续加载砧木图片测试出现中途退出,1秒内图片id重复造成存储异常退出
  56. 修改图片id,增加序列值(00-99)
  57. 2)imginfo2mat()中构建mat矩阵,自己申请的内存(new),指针赋值给mat对象,mat对象
  58. 析构是不负责释放,造成内存泄露,已修改
  59. v0.5.9.19 增加配置参数写入日志功能:启动-初始化,或认为设置参数后将最新配置参数写入日志文件
  60. 增加版本号日志
  61. 增加宽大真叶的情况的处理
  62. v0.5.9.20 增加砧木分叉点检测优化,增加fork_rs.h,cpp(还没有全面测试)
  63. 修改砧木roi最大点识别,将比例参数1.5调整至2.0(utils.cpp)
  64. 修改砧木茎中心最大内接园半径的方法,不采用flann查找(出现误差较大),改用pointPolygonTest()
  65. 去掉opencv_flann2410d.lib
  66. 按测试,修改rs_cut_point_offset_ratio: 9.0000000000000000e-001
  67. 修改穗苗识别方法(用于标定位置的夹子被遮挡)
  68. v0.6.0 修改旋转角度识别算法,采用顶部拍照,一次识别旋转角度
  69. v0.6.1 移植到vs2015平台(vc14),选用OpenCV v4.55
  70. v0.6.2 增加上苗点云识别夹取位置接口及功能
  71. v0.6.3 增加茄科切后识别接口及功能(同一个接口支持砧木和穗苗)
  72. v0.6.4 增加算法参数读取文件进行更新的接口
  73. v0.6.5 修改代码,得到最左侧一株
  74. v0.6.6 增加剪裁后没有点的异常处理
  75. v0.6.7 修改点云显示代码,显示抓取点xy方向,及z平面上的xoy坐标系
  76. v0.6.8 增加穗苗的inbox定义,增加最优茎高的定义;修改vector随机读取[]为at方法;增加接口参数用于定义抓取苗是砧木还是穗苗;修改了接口函数名称
  77. v0.6.9 修改抓取砧木、穗苗的定义0--穗苗,1--砧木;穗苗和砧木抓取顺序相反
  78. v0.6.10 重写砧木、穗苗切后重识别算法,现在用切后侧面图,输出夹爪基面y值、切后3点y与基面y值的距离
  79. v0.6.11 增加茄科切后重识别异常退出判断
  80. v0.6.12 增加茄科抓取目标大小判断,太小的目标跳出;增加自动ply数据保存功能;茄科切后重识别图片保存功能
  81. v0.6.13 增加聚类结果中点数小于20的类别剔除功能;修改降采样后整个点云数量小于50退出(原来是200)
  82. v0.6.14 修改茎识别方法,通过2d高密度点找到茎的位置,然后提取株的最大空间内点云,用直线分割的方法得到茎的位置,避免识别位置错误
  83. v0.6.15 修改抓取点识别方法,通过比较直线点云和原始点云相同位置邻域内xz的范围,确定此点是否是无干扰点的茎
  84. v0.6.16 加强苗的识别,增加倾斜苗的检测,修改排序错乱问题
  85. v0.7.0 支持多线程调用业务接口
  86. v0.7.1 增加voxelsize参数;修改茎密度最大值的1/3为最小茎密度的下限(原来为1/2,有些小苗识别不出来)
  87. v0.7.2 增加结果图片输出功能;日志增加image_id信息
  88. v0.7.3 修改抓取位置,提供茎节分叉的位置(以前提供可抓取的位置,避开茎节的点)
  89. v0.7.4 增加叶片剔除功能(在boxcrop和降采样后实现,直接采用欧式距离聚类)
  90. v0.7.5 优化叶片剔除功能(欧式距离聚类没能分割叶片和茎造成误剔除,本次采用ror方法剔除叶片,但有些耗时)
  91. v0.7.6 优化叶片剔除功能,修改ror,nb_point的数量系数,通过配置文件sc_grab_ror_ratio参数传入
  92. v0.7.7 优化茎判别问题:上下2片叶子,利用有效高度剔除;偏离z中心剔除,采用历史z均值
  93. v0.7.8 修改接穗抓点靠上一点
  94. v0.7.9 修改接穗抓点靠上一点,增加了grab_offset,用来在找到茎节后的上下偏移得到抓取点,+值向上偏,-值向下偏
  95. v0.7.10 增加茎节点位置绘制输出;茎节判别仅按dx方向大小判断(dz误差较大)
  96. v0.7.11 增加棋盘格识别,用于标定辅助
  97. v0.7.12 增加茎节peakfind功能
  98. v0.7.13 修改sc_grab_offset不起作用的bug
  99. v0.7.14 增加指定抓取位置的功能,抓取位置在ymax向下指定距离为抓取位置
  100. v0.7.15 优化茎节位置识别
  101. v0.7.16 优化茎节位置识别,增加平均茎节高度约束,10mm范围
  102. v0.7.17 优化茎节位置识别,不存在显著茎节的用平均茎节高度替代,否则用识别到的茎节位置