mirror of
https://github.com/azaion/autopilot.git
synced 2026-04-23 02:26:34 +00:00
Enables use of multiple TPUs in OPI5
This commit is contained in:
@@ -21,10 +21,11 @@ void AiEngineInferenceOpencvOnnx::performInferenceSlot(cv::Mat frame)
|
||||
mActive = true;
|
||||
|
||||
cv::Mat scaledImage = resizeAndPad(frame);
|
||||
//cv::imwrite("/tmp/frame.png", scaledImage);
|
||||
std::vector<Detection> detections = mInference.runInference(scaledImage);
|
||||
AiEngineInferenceResult result;
|
||||
|
||||
//qDebug() << "performInferenceSlot() found " << detections.size() << " objects";
|
||||
qDebug() << "performInferenceSlot() found " << detections.size() << " objects";
|
||||
|
||||
for (uint i = 0; i < detections.size(); ++i) {
|
||||
const Detection &detection = detections[i];
|
||||
@@ -38,8 +39,15 @@ void AiEngineInferenceOpencvOnnx::performInferenceSlot(cv::Mat frame)
|
||||
object.rectangle.bottom = detection.box.y + detection.box.height;
|
||||
object.rectangle.right = detection.box.x + detection.box.width;
|
||||
result.objects.append(object);
|
||||
|
||||
//qDebug() << "performInferenceSlot()" << object.rectangle.top << object.rectangle.left << "and" << object.rectangle.bottom << object.rectangle.right;
|
||||
}
|
||||
|
||||
auto end = std::remove_if(detections.begin(), detections.end(), [](const Detection& detection) {
|
||||
return detection.class_id != 0;
|
||||
});
|
||||
detections.erase(end, detections.end());
|
||||
|
||||
if (result.objects.empty() == false) {
|
||||
result.frame = mInference.drawLabels(scaledImage, detections);
|
||||
emit resultsReady(result);
|
||||
@@ -51,3 +59,9 @@ void AiEngineInferenceOpencvOnnx::performInferenceSlot(cv::Mat frame)
|
||||
std::cerr << "performInferenceSlot() Error: " << e.what() << std::endl;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
void AiEngineInferenceOpencvOnnx::initialize(int number)
|
||||
{
|
||||
(void)number;
|
||||
}
|
||||
|
||||
@@ -9,6 +9,7 @@ class AiEngineInferenceOpencvOnnx : public AiEngineInference
|
||||
Q_OBJECT
|
||||
public:
|
||||
explicit AiEngineInferenceOpencvOnnx(QString modelPath, QObject *parent = nullptr);
|
||||
void initialize(int number);
|
||||
|
||||
public slots:
|
||||
void performInferenceSlot(cv::Mat frame) override;
|
||||
|
||||
Reference in New Issue
Block a user