{"id":684,"date":"2021-11-10T23:14:45","date_gmt":"2021-11-10T14:14:45","guid":{"rendered":"https:\/\/rfsec.ddns.net\/db\/?p=684"},"modified":"2021-11-12T11:09:06","modified_gmt":"2021-11-12T02:09:06","slug":"jetson-nano%e3%81%a7cv2cuda%e6%9c%89%e5%8a%b9%e5%8c%96","status":"publish","type":"post","link":"https:\/\/rfsec.ddns.net\/db\/?p=684","title":{"rendered":"jetson nano\u3067cv2(cuda\u6709\u52b9\u5316)"},"content":{"rendered":"\n<p>\u30bd\u30fc\u30b9\u304b\u3089\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb<\/p>\n\n\n\n<figure class=\"wp-block-embed is-type-wp-embed is-provider-jetsonhacks wp-block-embed-jetsonhacks\"><div class=\"wp-block-embed__wrapper\">\n<blockquote class=\"wp-embedded-content\" data-secret=\"KBdvkec8bg\"><a href=\"https:\/\/jetsonhacks.com\/2019\/11\/22\/opencv-4-cuda-on-jetson-nano\/\">OpenCV 4 + CUDA on Jetson Nano<\/a><\/blockquote><iframe loading=\"lazy\" class=\"wp-embedded-content\" sandbox=\"allow-scripts\" security=\"restricted\" style=\"position: absolute; clip: rect(1px, 1px, 1px, 1px);\" title=\"&#8220;OpenCV 4 + CUDA on Jetson Nano&#8221; &#8212; JetsonHacks\" src=\"https:\/\/jetsonhacks.com\/2019\/11\/22\/opencv-4-cuda-on-jetson-nano\/embed\/#?secret=r8By9LSwWI#?secret=KBdvkec8bg\" data-secret=\"KBdvkec8bg\" width=\"600\" height=\"338\" frameborder=\"0\" marginwidth=\"0\" marginheight=\"0\" scrolling=\"no\"><\/iframe>\n<\/div><\/figure>\n\n\n\n<p>python3\u3067cv2\u3092import\u3059\u308b\u3068 crash\u3057\u3066\u30b3\u30a2\u30fc\u30c0\u30f3\u30d7\u3002<\/p>\n\n\n\n<p>\u554f\u984c\u306e\u89e3\u6c7a\uff1aexport OPENBLAS_CORETYPE=ARMV8<\/p>\n\n\n\n<p><a rel=\"noreferrer noopener\" href=\"https:\/\/qiita.com\/Nabeshin\/items\/da65eaa8c7feb66ad84c\" data-type=\"URL\" data-id=\"https:\/\/qiita.com\/Nabeshin\/items\/da65eaa8c7feb66ad84c\" target=\"_blank\">\u3053\u3061\u3089\u3092\u53c2\u7167\u3057\u3066\u89e3\u6c7a<\/a>\u3002Jetson Nano\u306ePython3\u74b0\u5883\u3067Illegal instruction (cpre dumped)<\/p>\n\n\n\n<p>\u51e6\u7406\u901f\u5ea6\u306e\u6bd4\u8f03\u6e2c\u5b9a\uff1a\u7d04\uff13\u500d<\/p>\n\n\n\n<div class=\"hcb_wrap\"><pre class=\"prism line-numbers lang-bash\" data-lang=\"Bash\"><code>$ sudo nvpmodel -m 0\n$ sudo jetson_clocks\n$ python3 opencv_cuda.py\nCPU = 2.7655137538909913[msec]\nGPU = 1.0501614570617677[msec]\n1\n$ python3 opencv_cuda.py\nCPU = 2.7816075325012206[msec]\nGPU = 0.9869620561599731[msec]\n1<\/code><\/pre><\/div>\n\n\n\n<p>opencv_cuda.py<\/p>\n\n\n\n<div class=\"hcb_wrap\"><pre class=\"prism line-numbers lang-python\" data-lang=\"Python\"><code>import sys\nimport time\nimport cv2\n\n### VALUES\nNUM_REPEAT = 10000\n\n### Read source image\nimg_src = cv2.imread(&quot;resource\/lena.jpg&quot;)\ncv2.imshow(&#39;img_src&#39;, img_src)\n\n\n### Run with CPU\ntime_start = time.time()\nfor i in range (NUM_REPEAT):\n    img_dst = cv2.resize(img_src, (300, 300))\ntime_end = time.time()\nprint (&quot;CPU = {0}&quot;.format((time_end - time_start) * 1000 \/ NUM_REPEAT) + &quot;[msec]&quot;)\ncv2.imshow(&#39;CPU&#39;, img_dst)\n\n\n### Run with GPU\nimg_gpu_src = cv2.cuda_GpuMat() # Allocate device memory only once, as memory allocation seems to take time...\nimg_gpu_dst = cv2.cuda_GpuMat()\ntime_start = time.time()\nfor i in range (NUM_REPEAT):\n    img_gpu_src.upload(img_src)\n    img_gpu_dst = cv2.cuda.resize(img_gpu_src, (300, 300))\n    img_dst = img_gpu_dst.download()\ntime_end = time.time()\nprint (&quot;GPU = {0}&quot;.format((time_end - time_start) * 1000 \/ NUM_REPEAT) + &quot;[msec]&quot;)\ncv2.imshow(&#39;GPU&#39;, img_dst)\n\n\nkey = cv2.waitKey(0)\ncv2.destroyAllWindows()\n\nprint(cv2.cuda.getCudaEnabledDeviceCount())<\/code><\/pre><\/div>\n\n\n\n<p>cuda\u3067\u5229\u7528\u3067\u304d\u308b\u6a5f\u80fd\u3092\u8868\u793a\u3057\u3066\u307f\u308b<\/p>\n\n\n\n<div class=\"hcb_wrap\"><pre class=\"prism line-numbers lang-python\" data-lang=\"Python\"><code>import cv2\ncv2.__version__\ndir(cv2.cuda)<\/code><\/pre><\/div>\n\n\n\n<div class=\"wp-block-columns is-layout-flex wp-container-core-columns-is-layout-9d6595d7 wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\" style=\"flex-basis:100%\">\n<div style=\"border: 1px solid #ccc; height: 200px; overflow: auto; width: 95%; border-radius: 3px; -moz-border-radius: 3px; -webkit-border-radius: 3px; background-color: #fffcfc; margin: auto; padding: 10px;\">\n<pre>['ALPHA_ATOP',\n 'ALPHA_ATOP_PREMUL',\n 'ALPHA_IN',\n 'ALPHA_IN_PREMUL',\n 'ALPHA_OUT',\n 'ALPHA_OUT_PREMUL',\n 'ALPHA_OVER',\n 'ALPHA_OVER_PREMUL',\n 'ALPHA_PLUS',\n 'ALPHA_PLUS_PREMUL',\n 'ALPHA_PREMUL',\n 'ALPHA_XOR',\n 'ALPHA_XOR_PREMUL',\n 'BroxOpticalFlow_create',\n 'COLOR_BAYER_BG2BGR_MHT',\n 'COLOR_BAYER_BG2GRAY_MHT',\n 'COLOR_BAYER_BG2RGB_MHT',\n 'COLOR_BAYER_GB2BGR_MHT',\n 'COLOR_BAYER_GB2GRAY_MHT',\n 'COLOR_BAYER_GB2RGB_MHT',\n 'COLOR_BAYER_GR2BGR_MHT',\n 'COLOR_BAYER_GR2GRAY_MHT',\n 'COLOR_BAYER_GR2RGB_MHT',\n 'COLOR_BAYER_RG2BGR_MHT',\n 'COLOR_BAYER_RG2GRAY_MHT',\n 'COLOR_BAYER_RG2RGB_MHT',\n 'COLOR_BayerBG2BGR_MHT',\n 'COLOR_BayerBG2GRAY_MHT',\n 'COLOR_BayerBG2RGB_MHT',\n 'COLOR_BayerGB2BGR_MHT',\n 'COLOR_BayerGB2GRAY_MHT',\n 'COLOR_BayerGB2RGB_MHT',\n 'COLOR_BayerGR2BGR_MHT',\n 'COLOR_BayerGR2GRAY_MHT',\n 'COLOR_BayerGR2RGB_MHT',\n 'COLOR_BayerRG2BGR_MHT',\n 'COLOR_BayerRG2GRAY_MHT',\n 'COLOR_BayerRG2RGB_MHT',\n 'CascadeClassifier_create',\n 'DEVICE_INFO_COMPUTE_MODE_DEFAULT',\n 'DEVICE_INFO_COMPUTE_MODE_EXCLUSIVE',\n 'DEVICE_INFO_COMPUTE_MODE_EXCLUSIVE_PROCESS',\n 'DEVICE_INFO_COMPUTE_MODE_PROHIBITED',\n 'DYNAMIC_PARALLELISM',\n 'DensePyrLKOpticalFlow_create',\n 'DescriptorMatcher_createBFMatcher',\n 'DeviceInfo_ComputeModeDefault',\n 'DeviceInfo_ComputeModeExclusive',\n 'DeviceInfo_ComputeModeExclusiveProcess',\n 'DeviceInfo_ComputeModeProhibited',\n 'EVENT_BLOCKING_SYNC',\n 'EVENT_DEFAULT',\n 'EVENT_DISABLE_TIMING',\n 'EVENT_INTERPROCESS',\n 'Event_BLOCKING_SYNC',\n 'Event_DEFAULT',\n 'Event_DISABLE_TIMING',\n 'Event_INTERPROCESS',\n 'Event_elapsedTime',\n 'FEATURE_SET_COMPUTE_10',\n 'FEATURE_SET_COMPUTE_11',\n 'FEATURE_SET_COMPUTE_12',\n 'FEATURE_SET_COMPUTE_13',\n 'FEATURE_SET_COMPUTE_20',\n 'FEATURE_SET_COMPUTE_21',\n 'FEATURE_SET_COMPUTE_30',\n 'FEATURE_SET_COMPUTE_32',\n 'FEATURE_SET_COMPUTE_35',\n 'FEATURE_SET_COMPUTE_50',\n 'FarnebackOpticalFlow_create',\n 'FastFeatureDetector_create',\n 'GLOBAL_ATOMICS',\n 'GpuMat_defaultAllocator',\n 'GpuMat_setDefaultAllocator',\n 'HOG_create',\n 'HOST_MEM_PAGE_LOCKED',\n 'HOST_MEM_SHARED',\n 'HOST_MEM_WRITE_COMBINED',\n 'HostMem_PAGE_LOCKED',\n 'HostMem_SHARED',\n 'HostMem_WRITE_COMBINED',\n 'NATIVE_DOUBLE',\n 'NVIDIA_OPTICAL_FLOW_1_0_NV_OF_PERF_LEVEL_FAST',\n 'NVIDIA_OPTICAL_FLOW_1_0_NV_OF_PERF_LEVEL_MAX',\n 'NVIDIA_OPTICAL_FLOW_1_0_NV_OF_PERF_LEVEL_MEDIUM',\n 'NVIDIA_OPTICAL_FLOW_1_0_NV_OF_PERF_LEVEL_SLOW',\n 'NVIDIA_OPTICAL_FLOW_1_0_NV_OF_PERF_LEVEL_UNDEFINED',\n 'NvidiaOpticalFlow_1_0_NV_OF_PERF_LEVEL_FAST',\n 'NvidiaOpticalFlow_1_0_NV_OF_PERF_LEVEL_MAX',\n 'NvidiaOpticalFlow_1_0_NV_OF_PERF_LEVEL_MEDIUM',\n 'NvidiaOpticalFlow_1_0_NV_OF_PERF_LEVEL_SLOW',\n 'NvidiaOpticalFlow_1_0_NV_OF_PERF_LEVEL_UNDEFINED',\n 'NvidiaOpticalFlow_1_0_create',\n 'ORB_create',\n 'OpticalFlowDual_TVL1_create',\n 'SHARED_ATOMICS',\n 'SURF_CUDA_ANGLE_ROW',\n 'SURF_CUDA_HESSIAN_ROW',\n 'SURF_CUDA_LAPLACIAN_ROW',\n 'SURF_CUDA_OCTAVE_ROW',\n 'SURF_CUDA_ROWS_COUNT',\n 'SURF_CUDA_SIZE_ROW',\n 'SURF_CUDA_X_ROW',\n 'SURF_CUDA_Y_ROW',\n 'SparsePyrLKOpticalFlow_create',\n 'StereoBeliefPropagation_estimateRecommendedParams',\n 'StereoConstantSpaceBP_estimateRecommendedParams',\n 'Stream_Null',\n 'TargetArchs_has',\n 'TargetArchs_hasBin',\n 'TargetArchs_hasEqualOrGreater',\n 'TargetArchs_hasEqualOrGreaterBin',\n 'TargetArchs_hasEqualOrGreaterPtx',\n 'TargetArchs_hasEqualOrLessPtx',\n 'TargetArchs_hasPtx',\n 'WARP_SHUFFLE_FUNCTIONS',\n '__doc__',\n '__loader__',\n '__name__',\n '__package__',\n '__spec__',\n 'abs',\n 'absSum',\n 'absdiff',\n 'add',\n 'addWeighted',\n 'alphaComp',\n 'bilateralFilter',\n 'bitwise_and',\n 'bitwise_not',\n 'bitwise_or',\n 'bitwise_xor',\n 'blendLinear',\n 'buildWarpAffineMaps',\n 'buildWarpPerspectiveMaps',\n 'calcAbsSum',\n 'calcHist',\n 'calcNorm',\n 'calcNormDiff',\n 'calcSqrSum',\n 'calcSum',\n 'cartToPolar',\n 'compare',\n 'copyMakeBorder',\n 'countNonZero',\n 'createBackgroundSubtractorMOG',\n 'createBackgroundSubtractorMOG2',\n 'createBoxFilter',\n 'createBoxMaxFilter',\n 'createBoxMinFilter',\n 'createCLAHE',\n 'createCannyEdgeDetector',\n 'createColumnSumFilter',\n 'createContinuous',\n 'createConvolution',\n 'createDFT',\n 'createDerivFilter',\n 'createDisparityBilateralFilter',\n 'createGaussianFilter',\n 'createGeneralizedHoughBallard',\n 'createGeneralizedHoughGuil',\n 'createGoodFeaturesToTrackDetector',\n 'createHarrisCorner',\n 'createHoughCirclesDetector',\n 'createHoughLinesDetector',\n 'createHoughSegmentDetector',\n 'createLaplacianFilter',\n 'createLinearFilter',\n 'createLookUpTable',\n 'createMedianFilter',\n 'createMinEigenValCorner',\n 'createMorphologyFilter',\n 'createRowSumFilter',\n 'createScharrFilter',\n 'createSeparableLinearFilter',\n 'createSobelFilter',\n 'createStereoBM',\n 'createStereoBeliefPropagation',\n 'createStereoConstantSpaceBP',\n 'createTemplateMatching',\n 'cvtColor',\n 'demosaicing',\n 'dft',\n 'divide',\n 'drawColorDisp',\n 'ensureSizeIsEnough',\n 'equalizeHist',\n 'evenLevels',\n 'exp',\n 'findMinMax',\n 'findMinMaxLoc',\n 'flip',\n 'gammaCorrection',\n 'gemm',\n 'getCudaEnabledDeviceCount',\n 'getDevice',\n 'histEven',\n 'histRange',\n 'integral',\n 'log',\n 'magnitude',\n 'magnitudeSqr',\n 'max',\n 'meanShiftFiltering',\n 'meanShiftProc',\n 'meanShiftSegmentation',\n 'meanStdDev',\n 'merge',\n 'min',\n 'minMax',\n 'minMaxLoc',\n 'mulAndScaleSpectrums',\n 'mulSpectrums',\n 'multiply',\n 'norm',\n 'normalize',\n 'phase',\n 'polarToCart',\n 'pow',\n 'printCudaDeviceInfo',\n 'printShortCudaDeviceInfo',\n 'pyrDown',\n 'pyrUp',\n 'rectStdDev',\n 'reduce',\n 'registerPageLocked',\n 'remap',\n 'reprojectImageTo3D',\n 'resetDevice',\n 'resize',\n 'rotate',\n 'setBufferPoolConfig',\n 'setBufferPoolUsage',\n 'setDevice',\n 'split',\n 'sqr',\n 'sqrIntegral',\n 'sqrSum',\n 'sqrt',\n 'subtract',\n 'sum',\n 'threshold',\n 'transpose',\n 'unregisterPageLocked',\n 'warpAffine',\n 'warpPerspective']\n<\/pre>\n<\/div>\n<\/div>\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>\u30bd\u30fc\u30b9\u304b\u3089\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb python3\u3067cv2\u3092import\u3059\u308b\u3068 crash\u3057\u3066\u30b3\u30a2\u30fc\u30c0\u30f3\u30d7\u3002 \u554f\u984c\u306e\u89e3\u6c7a\uff1aexport OPENBLAS_CORETYPE=ARMV8 \u3053\u3061\u3089\u3092\u53c2\u7167\u3057\u3066\u89e3\u6c7a\u3002Jetson Nano\u306eP [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_jetpack_memberships_contains_paid_content":false,"footnotes":""},"categories":[2,1,6],"tags":[],"class_list":["post-684","post","type-post","status-publish","format-standard","hentry","category-camera","category-uncategorized","category-make"],"featured_image_src":null,"author_info":{"display_name":"mars","author_link":"https:\/\/rfsec.ddns.net\/db\/?author=1"},"jetpack_featured_media_url":"","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/rfsec.ddns.net\/db\/index.php?rest_route=\/wp\/v2\/posts\/684","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/rfsec.ddns.net\/db\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/rfsec.ddns.net\/db\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/rfsec.ddns.net\/db\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/rfsec.ddns.net\/db\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=684"}],"version-history":[{"count":9,"href":"https:\/\/rfsec.ddns.net\/db\/index.php?rest_route=\/wp\/v2\/posts\/684\/revisions"}],"predecessor-version":[{"id":706,"href":"https:\/\/rfsec.ddns.net\/db\/index.php?rest_route=\/wp\/v2\/posts\/684\/revisions\/706"}],"wp:attachment":[{"href":"https:\/\/rfsec.ddns.net\/db\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=684"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/rfsec.ddns.net\/db\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=684"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/rfsec.ddns.net\/db\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=684"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}