A python project to trace a cockroach in a video.
To pack an exe: pyinstaller -F [-n filename] main.py
- 如果蟑螂出镜了,或者被手挡住了,则那一段的检测结果可能会失效。请务必注意这一点。
- 标志点和环境没有明显颜色差异的,不要用color
- 使用轮廓识别需要预先处理好背景图,可以利用“展示第一帧”功能导出第一帧图像,之后再进行抠图处理
- 使用轮廓识别不能输出摆动角速度
- 输出文件的坐标记录:(x, y)
- kernel可以不是方形的
- domain: (上下左右)
9.9
- pPath只画了刺激范围内的点
- pAngle-interp画了所有点
- pOmega只画了刺激范围内的点
method | 速度 | 精度 | 识别标志点 | 重新定位 |
---|---|---|---|---|
meanshift | 快 | 较高 | yes | ok |
color | 较快 | 较高 | yes | ok |
camshift | 快 | 较高 | no | ok |
contour | 慢 | 一般 | no | ok |
contourCNN | 较快 | 较高 | no | ok |
feature | 较慢 | 高 | yes | bad |
method | basic | mutiple | skip read |
---|---|---|---|
meanshift | OK | OK | OK |
color | OK | OK | OK |
contour | OK | - | OK |
contour+CNN | - | - | - |
feature | OK | - | OK |
data object | output to file | output to plt | change unit |
---|---|---|---|
path | ok | ok | ok |
radius | ok | ok | ok |
angle | ok | ok | - |
omega | ok | ok | - |
dist | ok | ok | ok |
-
传文件传文件句柄
-
中间文件和最终输出文件统一到一个格式(待完成)
-
统一用i或者idx(或者pf)表示下标,f或者frame表示帧数
-
记录数据的格式标准为int或者float一位小数(根据精度). '{cnt} {value1,value2,...}'
-
处理数据的格式标准为... np.ndarray
-
tract_point用一套新框架(function-reset_function递归)解决了选点的一系列问题 monitor_show只记录状态,不作处理。处理通过function, reset_function或者外部函数
-
输出转向角度angle,
-
转向角速度omega_t, 摆动角速度omega_s,
-
angle_interp...
-
转弯半径radius
-
转向半径单位:米
-
main window size(change)
-
a drag rectangle when selecting a rect
-
result-file-output: 'black'
-
format cv to cv2 for all the files
-
put ResWindow on the front
-
show angle first frame be 0?
-
resolve the error occurred when loading a video
-
main window size not stable?
-
sequence of plots
-
tract point show output to out_window
-
add cut_edge when tracting points
-
check if the multiple process is OK
-
complete feature_detection
-
rewrite prompt(select_window)
-
solve the filename problem
-
change to the dynamic threshold for radius
-
choice: timestamp should be the time when detecting goes or data_dealing(result_viewing):
目前是跟着ResWindow走的
-
add detecting_mark_str record
-
refresh property when loading a new video
-
regular imports:
except for tkinterUI.py
-
add "release" and "debug" mode to all files
-
os.makedir
-
regular output file path
-
plt.figure(x) - regular figure name
-
delete bokeh-format codes(/)
-
put pstatus in front of each file
-
resolve the problem of "can't go plt.show()"
-
function: load_last_result
-
some problems about px_to_cm result dealing
-
regular plot: x_label and y_label for each plot
(xlabel, ylabel, figname, title)
-
some problems about display_window
-
put dispWindow to the top when detecting(/)
-
add prompt: 提取过程中止
-
WindowsLift(/)
-
a pause button ({space})
-
outWindow open and close
-
contour-detection my_show close error
-
central-control mode ["release","debug"]
-
update display_window
-
write about minis, balance accuracy with time(/)
-
读取过程缩放-功能实现(处理过程缩放)
-
处理过程中写文件,要把帧数写上,以适应skip read功能
-
把deal_with_data拆分为parse_data和deal_data两个文件
-
是否需要parse data过程中都带着frame number -> 所有的数据都进行有效化(
X1, Y1, X2, Y2是未过滤的,通过self.frames进行过滤 X_mid, Y_mid, K, D, Theta都是过滤之后的 这样统一了有效数据的帧数,可以用indice和mask写法,优先使用mask)
-
数据np.array化
-
放大的选点/选颜色(/)
-
把QtUI去掉
-
color 和 feature的提取过程展示
-
show first frame & save
7.14 consult with Yuli:
- 调整kernal生成方式
- 标志点特征旋转 窗口大小实现响应式布局(/)
- 角度结果跳变
9.1
- 加入辅助角度
9.3
-
update 轮廓识别(?)
-
加入Bokeh(?)
9.8
- 优化处理方法(data dealing)
- tractor的取消提示
9.9
- tractor双击放大
- 角度趋势相对应
- 打包成exe无法显示matplotlib组件的问题
10.8
poyfit和pca:
给定椭圆周上取点
angle(deg) | pca result | polyfit result |
---|---|---|
9 | 9 | 7.11 |
30 | 30 | 23.14 |
60 | 60 | 40.16 |
90 | 90 | 0 |