Creating a Rust HailRS library

The idea is to create a hailo rs library which makes it super easy for novice users to use models. A simple example can be found here:

Unfortunately only object detection is supported because a hef file needs to be read and critical information from the hef needs to be recuperated like input/output vstream names, configuration,… For this a hef_manager is being made:

which should be able to read any hef and be able to help (semi)automatically configure different types of machine learning models. Unfortunately the hef_manager is not correctly reading the hef files. Steps to reproduce:

  1. git clone GitHub - profitgrowinginnovator/hef_manager
  2. cd hef_manager
  3. cargo run --bin hef_cli hef/centernet_resnet_v1_18_postprocess.hef

The exception:
Running target/debug/hef_cli hef/centernet_resnet_v1_18_postprocess.hef
Parsed Magic: 0x01484546
Parsed Version: 1
Parsed Proto Size: 1912603
Parsed Header: HefHeader { magic: 21513542, version: 1, hef_proto_size: 1912603, details: V1 { crc: 3828573467, ccws_size: 10932176, reserved: 0 } }
Calculated Proto Offset: 10932200
Proto Data Size: 1912603, Offset: 10932200, Requested Size: 1912603
Proto data written to: proto_dump.pb.cc
Parsed Magic: 0x01484546
Parsed Version: 1
Parsed Proto Size: 1912603
Parsed Header: HefHeader { magic: 21513542, version: 1, hef_proto_size: 1912603, details: V1 { crc: 3828573467, ccws_size: 10932176, reserved: 0 } }
Calculated Proto Offset: 10932200
Proto Data Size: 1912603, Offset: 10932200, Requested Size: 1912603
Error parsing HEF file: Proto decode error at offset 10932200 with size 1912603: failed to decode Protobuf message: ProtoHefHef.network_groups: invalid wire type: SixtyFourBit (expected LengthDelimited)

Any help greatly appreciated

3 Likes