MayaFlux 1.0.0
Digital-First Multimedia Processing Framework
Loading...
Searching...
No Matches

◆ analyze_resolved()

Kinesis::Vision::VisionAnalysis MayaFlux::Yantra::VisionAnalyzer::analyze_resolved ( const std::shared_ptr< Core::VKImage > &  image)
private

Shared body of both analyze_vision() overloads, once a GPU image is in hand: resolve the configured query, run every resolved VisionSequence, apply context filtering, run the GPU reductions.

w/h are the image's own dimensions.

Definition at line 499 of file VisionAnalyzer.cpp.

501{
502 const auto resolved = Kinesis::Vision::resolve(m_query);
503
504 std::vector<Kinesis::Vision::VisionResult> results;
505 results.reserve(resolved.size());
506 m_label_lane = 0;
507
508 for (size_t lane = 0; lane < resolved.size(); ++lane) {
509 if (!run_lane(lane, resolved, results, image))
510 results.emplace_back();
511 }
512
513 auto analysis = assemble(resolved, results, image->get_width(), image->get_height());
514 m_results = std::make_shared<const std::vector<Kinesis::Vision::VisionResult>>(std::move(results));
515 return analysis;
516}
IO::ImageData image
Definition Decoder.cpp:47
Kinesis::Vision::VisionQuery m_query
bool run_lane(size_t lane, const std::vector< Kinesis::Vision::ResolvedSequence > &resolved, std::vector< Kinesis::Vision::VisionResult > &results, const std::shared_ptr< Core::VKImage > &image)
Run or poll sequence lane of resolved on its executor.
std::shared_ptr< const std::vector< Kinesis::Vision::VisionResult > > m_results
Kinesis::Vision::VisionAnalysis assemble(const std::vector< Kinesis::Vision::ResolvedSequence > &resolved, const std::vector< Kinesis::Vision::VisionResult > &results, uint32_t w, uint32_t h)
Route every completed sequence result into one VisionAnalysis, apply context filtering and run the GP...
std::vector< ResolvedSequence > resolve(const VisionQuery &query)
Resolve a VisionQuery into the ResolvedSequences needed to satisfy every active intent.

References assemble(), image, m_label_lane, m_query, m_results, MayaFlux::Kinesis::Vision::resolve(), and run_lane().

Referenced by analyze_vision(), and analyze_vision().

+ Here is the call graph for this function:
+ Here is the caller graph for this function: