how to load a custom model

Hi,

i try to load my custom model in the object following example.
I generetad a frozen_inference_graph.pb file with the tensorflow object detection api. But when i try to load it in the object following example, i get this error: ValueError: embedded null byte.

Hi,

It looks like the error occurs when de-serializing the TensorRT engine.

with open(engine_path, 'rb') as f:
    self.engine = self.runtime.deserialize_cuda_engine(f.read())

Could you help to check if there is an file exist on your environment?

Thanks.

Thank you for your answer.

Which file do you mean?

The three files from my picture exist.

I tried the ‘ssd_mobilenet_v2_coco.engine’ and it works. But my custom model doesn’t work.
I build it with the tensorflow object detection api tutorial.

Hi,

Could you create an TensorRT engine from your customized model successfully?
If not, would you mind to share the steps and the config.py you used?

Thanks.

Hi,

The first line (engine = ssd_tensorrt.ssd_pipeline_to_uff…) finished without an error, so i think the TensorRT engine is created. The “Frozen_Inference_graph” was also saved in the “inference_graph” folder.

  1. First i took some pictures and labeld them with labelImg.
  2. Then i created the .csv and .record files
  3. After that i downloaded the pre trained model “ssd_mobilenet_v2_coco”
  4. i modified the pipeline.config file in the “ssd_mobilenet_v2_coco” folder and started the training
  5. Then i started the object following file and copied the new trained files in the training folder

My Pipelineconfig:

model {
ssd {
num_classes: 5
image_resizer {
fixed_shape_resizer {
height: 300
width: 300
}
}
feature_extractor {
type: “ssd_mobilenet_v2”
depth_multiplier: 1.0
min_depth: 16
conv_hyperparams {
regularizer {
l2_regularizer {
weight: 3.99999989895e-05
}
}
initializer {
truncated_normal_initializer {
mean: 0.0
stddev: 0.0299999993294
}
}
activation: RELU_6
batch_norm {
decay: 0.999700009823
center: true
scale: true
epsilon: 0.0010000000475
train: true
}
}
use_depthwise: true
}
box_coder {
faster_rcnn_box_coder {
y_scale: 10.0
x_scale: 10.0
height_scale: 5.0
width_scale: 5.0
}
}
matcher {
argmax_matcher {
matched_threshold: 0.5
unmatched_threshold: 0.5
ignore_thresholds: false
negatives_lower_than_unmatched: true
force_match_for_each_row: true
}
}
similarity_calculator {
iou_similarity {
}
}
box_predictor {
convolutional_box_predictor {
conv_hyperparams {
regularizer {
l2_regularizer {
weight: 3.99999989895e-05
}
}
initializer {
truncated_normal_initializer {
mean: 0.0
stddev: 0.0299999993294
}
}
activation: RELU_6
batch_norm {
decay: 0.999700009823
center: true
scale: true
epsilon: 0.0010000000475
train: true
}
}
min_depth: 0
max_depth: 0
num_layers_before_predictor: 0
use_dropout: false
dropout_keep_probability: 0.800000011921
kernel_size: 3
box_code_size: 4
apply_sigmoid_to_scores: false
use_depthwise: true
}
}
anchor_generator {
ssd_anchor_generator {
num_layers: 6
min_scale: 0.20000000298
max_scale: 0.949999988079
aspect_ratios: 1.0
aspect_ratios: 2.0
aspect_ratios: 0.5
aspect_ratios: 3.0
aspect_ratios: 0.333299994469
}
}
post_processing {
batch_non_max_suppression {
score_threshold: 0.300000011921
iou_threshold: 0.600000023842
max_detections_per_class: 100
max_total_detections: 100
}
score_converter: SIGMOID
}
normalize_loss_by_num_matches: true
loss {
localization_loss {
weighted_smooth_l1 {
}
}
classification_loss {
weighted_sigmoid {
}
}
hard_example_miner {
num_hard_examples: 3000
iou_threshold: 0.990000009537
loss_type: CLASSIFICATION
max_negatives_per_positive: 3
min_negatives_per_image: 3
}
classification_weight: 1.0
localization_weight: 1.0
}
}
}
train_config {
batch_size: 24
data_augmentation_options {
random_horizontal_flip {
}
}
data_augmentation_options {
ssd_random_crop {
}
}
optimizer {
rms_prop_optimizer {
learning_rate {
exponential_decay_learning_rate {
initial_learning_rate: 0.00400000018999
decay_steps: 800720
decay_factor: 0.949999988079
}
}
momentum_optimizer_value: 0.899999976158
decay: 0.899999976158
epsilon: 1.0
}
}
fine_tune_checkpoint: “/home/jetbot/tensorflow/workspace/training_demo/pre-trained-model/model.ckpt”
num_steps: 100000
fine_tune_checkpoint_type: “detection”
}
train_input_reader {
label_map_path: “/home/jetbot/tensorflow/workspace/training_demo/annotations/label_map.pbtxt”
tf_record_input_reader {
input_path: “/home/jetbot/tensorflow/workspace/training_demo/annotations/train.record”
}
}
eval_config {
num_examples: 8000
max_evals: 10
use_moving_averages: false
}
eval_input_reader {
label_map_path: “/home/jetbot/tensorflow/workspace/training_demo/annotations/label_map.pbtxt”
shuffle: false
num_readers: 1
tf_record_input_reader {
input_path: “/home/jetbot/tensorflow/workspace/training_demo/annotations/test.record”
}
}

Thanks for your help!

Hi,

Sorry for the late.

It looks like there are some issue when opening the engine file.
Would you mind to check the executive folder if there is a "ssd_mobilenet_v2_coco.engine’ file?

Thanks.