基本的な使用方法
続行する前 に、「プロジェクトへの SDK の追加」および「アプリケーションの認証」で説明されている手順に従っていることを確認してください。
Linux for Live Sense SDK の最も基本的な用途は、静止画での車、歩行者、標識、その他のサポート対象物の検出です。 各モデルで検出できる内容の詳細について は、「モデル」を参照してください。
この機能は、 1 つのモデルまたは複数のモデルを実行する場合に使用できます。 このタイプの使用を有効にするには、次の手順を実行します。
using namespace ls;
LivesenseEngine::init();
ModelOptions mOptions;
mOptions.setRunInFp16(true);
mOptions.setRunInInt8(true);
RoadBasicsModelOptions roadBasicsModelOptions;
roadBasicsModelOptions.runTrafficLight = false;
roadBasicsModelOptions.runRoadBasicsNight = false;
roadBasicsModelOptions.roadBasicsConfidenceThresh = 0.55;
roadBasicsModelOptions.trafficLightConfidenceThresh = 0.55;
RoadBasicsModel roadBasicsModel(mOptions, roadBasicsModelOptions);
RoadSignsModelOptions roadSignsModelOptions;
roadSignsModelOptions.roadSignsConfidenceThresh = 0.6;
RoadSignsModel roadSignsModel(mOptions, roadSignsModelOptions);
std::vector<ls::RoadHazardsModelOptions> roadHazardsModelOptions = {
{ls::RoadHazardsModelType::RH_CONE_CONSTRUCTION, 0.6},
{ls::RoadHazardsModelType::RH_POTHOLES, 0.6},
{ls::RoadHazardsModelType::RH_SPEED_BUMP_OBJECT, 0.55},
{ls::RoadHazardsModelType::RH_SPEED_BUMP_SIGNAGE, 0.55},
{ls::RoadHazardsModelType::RH_BRIDGE_TUNNEL, 0.75},
{ls::RoadHazardsModelType::RH_HEIGHT_RESTRICTION_SIGNS, 0.6}};
RoadHazardsModel roadHazardsModel(mOptions, roadHazardsModelOptions);
BrakeLightModelOptions brakeLightModelOptions;
BrakeLightModel brakeLight(mOptions, brakeLightModelOptions);
cv::Mat frameRGB;
cv::cvtColor(frame, frameRGB, COLOR_BGR2RGB);
unsigned char* origInput = &frameRGB.data[0];
int origWidth = frameRGB.cols;
int origHeight = frameRGB.rows;
int resizedInputWidth = roadBasicsModel.getInputWidth();
int resizedInputHeight = roadBasicsModel.getInputHeight();
int numChannels = roadBasicsModel.getInputDepth();
unsigned char* resizedInput =
auto roadBasicsDet = roadBasicsModel.recognizeImage(resizedInput,
resizedInputWidth,
resizedInputHeight,
origWidth,
origHeight,
origInput);
resizedInputWidth = roadSignsModel.getInputWidth();
resizedInputHeight = roadSignsModel.getInputHeight();
numChannels = roadSignsModel.getInputDepth();
resizedInput =
auto roadSignsDet = roadSignsModel.recognizeImage(resizedInput,
resizedInputWidth,
resizedInputHeight,
origWidth,
origHeight,
origInput);
resizedInputWidth = roadHazardsModel.getInputWidth();
resizedInputHeight = roadHazardsModel.getInputHeight();
numChannels = roadHazardsModel.getInputDepth();
resizedInput =
auto roadHazardsDet = roadHazardsModel.recognizeImage(resizedInput,
resizedInputWidth,
resizedInputHeight,
origWidth,
origHeight);
resizedInputWidth = brakeLight.getInputWidth();
resizedInputHeight = brakeLight.getInputHeight();
numChannels = brakeLight.getInputDepth();
resizedInput =
auto brakeLightDet = brakeLight.recognizeImage(resizedInput,
resizedInputWidth,
resizedInputHeight,
origWidth,
origHeight);
アプリケーションで Live Sense SDK for Linux を使用する場合の推奨事項については 、「推奨事項」を参照してください