1
comesx4 2017-05-22 11:29:06 +08:00
用的是 GPU?
|
2
misaka19000 2017-05-22 11:30:33 +08:00
放代码
|
3
zzcchh OP @misaka19000 不敢放,太丑了,流程比较简单,识别轮廓,拟和椭圆和质点,记录 csv,甚至没有定义函数。
|
5
cnnblike 2017-05-22 11:41:49 +08:00 via iPhone
用的是机械硬盘?或者内存比较小?
|
6
laodao 2017-05-22 11:43:59 +08:00
上异步,分分钟跑满你的 cpu。
|
7
hand515 2017-05-22 11:44:33 +08:00
多线程改为多进程
|
8
XYxe 2017-05-22 11:45:23 +08:00 via Android
计算密集的任务试试多进程
|
9
scream7 2017-05-22 11:48:43 +08:00
是不是时间消耗在 IO 操作上了
|
10
baicheng 2017-05-22 11:56:47 +08:00 via iPhone
试着多将几帧一次性读入内存看看行不行?运行的时候看下资源占用率是不是硬盘开销比较大,如果你 CPU 相当牛叉有十几个核可以试试用 MATLAB 并行。
|
11
adodo1 2017-05-22 12:14:12 +08:00 1
5/6 帧一秒,视频好歹也 25 帧一秒最少
|
13
itfanr 2017-05-22 16:14:35 +08:00 via Android
建议用 go 或者 rust
|
14
zhidian 2017-05-22 16:17:56 +08:00
1. 可以只处理部分帧(关键帧?); 2. 每帧太大的话,降采样变小点;
|
16
zhidian 2017-05-22 16:27:32 +08:00
如果只是线、椭圆检测啥的,OpenCV 好像提供跟踪,应该快点吧。
|
17
ytmsdy 2017-05-22 16:40:40 +08:00 via iPhone
应该是 io 没跟上,导致 cpu 工作不饱和
|
18
uucloud 2017-05-22 16:51:53 +08:00
换 c++
|
21
zzcchh OP |
23
bookit 2017-05-22 23:01:40 +08:00
把事情分解开来做
比如一段视频,2000 帧,提取出 100 帧出来,把这个时间算一下,花了多长时间 然后分析其中 1 帧,看多长时间, 这样来找出瓶颈在哪里, 如果 cpu 利用率不高,可以开 50 个进程,同时分析 50 帧嘛 |
24
Hzzone 2017-05-22 23:26:19 +08:00
给自己一个入 1080 的理由
|
25
ironstars 2017-05-22 23:58:07 +08:00
首先,和 GPU 没关系,上 1080 也没用,不单独写针对 GPU 的特定版本是在 CPU 上跑的;
其次,换 GO 和 RUST,也要 OpenCV 支持,现在只支持 python、Java、C 和 C++; 最后没有代码的话,猜测是 IO 跟不上或者后面一直在等前面处理完? 建议一次读入比如 10 张图像,开 10 个线程并行处理。语言换 C++也行,速度会快一点。 |
27
Michaelssss 2017-05-23 07:49:53 +08:00
CPU 不高肯定是非 CPU 瓶颈,你得先找出瓶颈再分析。。。
|
28
zhuangzhuang1988 2017-05-23 09:32:07 +08:00
上 tbb 直接让你的 cpu 100%
|
29
Justkkk 2017-05-23 10:53:17 +08:00
放代码出来看看。。如果处理是可并行的,可以考虑多线程,or 用 gpu 来加速,但做这些可能都还是用 C++来做方便些
|
30
zhidian 2017-05-23 12:33:59 +08:00
There are at least 5 types of tracker algorithms that can be used:
- MIL - BOOSTING - MEDIANFLOW - TLD - KCF [OpenCV: Introduction to OpenCV Tracker]( http://docs.opencv.org/3.1.0/d2/d0a/tutorial_introduction_to_tracker.html ) |
31
Trim21 2017-05-24 08:01:17 +08:00 via Android
多线程换多进程。。
|