
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 Finest 2017-05-22 11:44:33 +08:00 多线程改为多进程 |
8 XYxe 2017-05-22 11:45:23 +08:00 via Android 计算密集的任务试试多进程 |
9 scream7 PRO 是不是时间消耗在 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 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 多线程换多进程。。 |