OpenCV HOG和SVM实现

时间:2017-07-25 14:49:19

标签: opencv image-processing machine-learning svm training-data

我正在尝试使用HOG和SVM方法找到在相机下行走的人。我正在使用OpenCV train_HOG示例。我在第433 437 438行和第442行中将2017-07-25 18:03:10,189 ERROR [Timer-Driven Process Thread-8] c.k.nifi.nifi_opcua_bundle.GetValue GetValue[id=55c6ac28-015d-1000-076b-844ca709cc40] GetValue[id=55c6ac28-015d-1000-076b-844ca709cc40] failed to process due to java.lang.IllegalArgumentException: Invalid string representation of a nodeId: - nsu=http%3A%2F%2Fopcfoundation.org%2FUA%2F;i=63; rolling back session: {} java.lang.IllegalArgumentException: Invalid string representation of a nodeId: - nsu=http%3A%2F%2Fopcfoundation.org%2FUA%2F;i=63 at org.opcfoundation.ua.builtintypes.NodeId.parseNodeId(NodeId.java:383) at com.kentender.nifi.nifi_opcua_services.StandardOPCUAService.getValue(StandardOPCUAService.java:346) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:497) at org.apache.nifi.controller.service.StandardControllerServiceInvocationHandler.invoke(StandardControllerServiceInvocationHandler.java:89) at com.sun.proxy.$Proxy78.getValue(Unknown Source) at com.kentender.nifi.nifi_opcua_bundle.GetValue$2.process(GetValue.java:160) at org.apache.nifi.controller.repository.StandardProcessSession.write(StandardProcessSession.java:2529) at com.kentender.nifi.nifi_opcua_bundle.GetValue.onTrigger(GetValue.java:156) at org.apache.nifi.processor.AbstractProcessor.onTrigger(AbstractProcessor.java:27) at org.apache.nifi.controller.StandardProcessorNode.onTrigger(StandardProcessorNode.java:1120) at org.apache.nifi.controller.tasks.ContinuallyRunProcessorTask.call(ContinuallyRunProcessorTask.java:147) at org.apache.nifi.controller.tasks.ContinuallyRunProcessorTask.call(ContinuallyRunProcessorTask.java:47) at org.apache.nifi.controller.scheduling.TimerDrivenSchedulingAgent$1.run(TimerDrivenSchedulingAgent.java:132) at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308) at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180) at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) 更改为Size( 96, 160 ),因为视频的大小为(240x240)。

我将INRIA数据集用于阴性样本,并将来自视频的步行者的帧作为正样本。

运行train_HOG.cpp后,我没有收到任何错误。问题在于,当我将视频作为Size( 240, 240 )功能的输入时,它无法找到同一个人走来走去。

这是什么问题?

我有100个正面样本。太少了吗?或者是关于默认HOG和SVM参数的问题? (因为我没有改变任何参数)或其他什么?

示例Pos示例:

enter image description here

P.S:可以通过背景减法来完成,但是想要使用HOG和SVM。

0 个答案:

没有答案