华为计算微信公众号
昇腾AI开发者公众号
华为计算微博
华为计算今日头条
环境:CANN8.2.RC1, mxvision6.0
程序如下:
APP_ERROR ret; // imageProcess init MxBase::ImageProcessor imageProcessor(deviceId); // model init MxBase::Model yoloV3(modelPath, deviceId); // *****2读取图片 MxBase::Image decodedImage; ret = imageProcessor.Decode(imgPath, decodedImage, ImageFormat::YUV_SP_420); if (ret != APP_ERR_OK) { LogError << "Decode failed, ret=" << ret; return; } // *****3缩放图片 MxBase::Image resizeImage; // set size param Size resizeConfig(640, 512); ret = imageProcessor.Resize(decodedImage, resizeConfig, resizeImage, Interpolation::HUAWEI_HIGH_ORDER_FILTER); if (ret != APP_ERR_OK) { LogError << "Resize failed, ret=" << ret; return; } // save resize image std::string path = "./resized_yolov3_416.jpg"; ret = imageProcessor.Encode(resizeImage, path); if (ret != APP_ERR_OK) { LogError << "Encode failed, ret=" << ret; return; } // *****4模型推理 Tensor tensorImg = resizeImage.ConvertToTensor(); ret = tensorImg.ToDevice(deviceId); if (ret != APP_ERR_OK) { LogError << "ToDevice failed, ret=" << ret; return; }
Resize后图像尺寸为[640,512],但tensor尺寸为[768,640],通道数也不正确
p resizeImage.GetOriginalSize() $4 = {width = 640, height = 512} (gdb) p resizeImage.GetSize() $5 = {width = 640, height = 512} (gdb) p (tensorImg.GetShape()[0] A syntax error in expression, near `'. (gdb) p tensorImg.GetShape()[0] $6 = (__gnu_cxx::__alloc_traits<std::allocator<unsigned int>, unsigned int>::value_type &) @0xaaaaadc83fc0: 1 (gdb) p tensorImg.GetShape()[1] $7 = (__gnu_cxx::__alloc_traits<std::allocator<unsigned int>, unsigned int>::value_type &) @0xaaaaadc8ff44: 768 (gdb) p tensorImg.GetShape()[2] $8 = (__gnu_cxx::__alloc_traits<std::allocator<unsigned int>, unsigned int>::value_type &) @0xaaaaadfbdc48: 640 (gdb) p tensorImg.GetShape()[3] $9 = (__gnu_cxx::__alloc_traits<std::allocator<unsigned int>, unsigned int>::value_type &) @0xaaaaadc8fdec: 1
我要发帖子
环境:CANN8.2.RC1, mxvision6.0
程序如下:
APP_ERROR ret; // imageProcess init MxBase::ImageProcessor imageProcessor(deviceId); // model init MxBase::Model yoloV3(modelPath, deviceId); // *****2读取图片 MxBase::Image decodedImage; ret = imageProcessor.Decode(imgPath, decodedImage, ImageFormat::YUV_SP_420); if (ret != APP_ERR_OK) { LogError << "Decode failed, ret=" << ret; return; } // *****3缩放图片 MxBase::Image resizeImage; // set size param Size resizeConfig(640, 512); ret = imageProcessor.Resize(decodedImage, resizeConfig, resizeImage, Interpolation::HUAWEI_HIGH_ORDER_FILTER); if (ret != APP_ERR_OK) { LogError << "Resize failed, ret=" << ret; return; } // save resize image std::string path = "./resized_yolov3_416.jpg"; ret = imageProcessor.Encode(resizeImage, path); if (ret != APP_ERR_OK) { LogError << "Encode failed, ret=" << ret; return; } // *****4模型推理 Tensor tensorImg = resizeImage.ConvertToTensor(); ret = tensorImg.ToDevice(deviceId); if (ret != APP_ERR_OK) { LogError << "ToDevice failed, ret=" << ret; return; }Resize后图像尺寸为[640,512],但tensor尺寸为[768,640],通道数也不正确
p resizeImage.GetOriginalSize() $4 = {width = 640, height = 512} (gdb) p resizeImage.GetSize() $5 = {width = 640, height = 512} (gdb) p (tensorImg.GetShape()[0] A syntax error in expression, near `'. (gdb) p tensorImg.GetShape()[0] $6 = (__gnu_cxx::__alloc_traits<std::allocator<unsigned int>, unsigned int>::value_type &) @0xaaaaadc83fc0: 1 (gdb) p tensorImg.GetShape()[1] $7 = (__gnu_cxx::__alloc_traits<std::allocator<unsigned int>, unsigned int>::value_type &) @0xaaaaadc8ff44: 768 (gdb) p tensorImg.GetShape()[2] $8 = (__gnu_cxx::__alloc_traits<std::allocator<unsigned int>, unsigned int>::value_type &) @0xaaaaadfbdc48: 640 (gdb) p tensorImg.GetShape()[3] $9 = (__gnu_cxx::__alloc_traits<std::allocator<unsigned int>, unsigned int>::value_type &) @0xaaaaadc8fdec: 1