#!/usr/bin/env python3
|
|
|
|
import cv2
|
|
import sys
|
|
import rospy
|
|
import object_detector_python3 as od
|
|
import detection_node_python3 as dn
|
|
import deep_learning_model_options as do
|
|
|
|
if __name__ == '__main__':
|
|
print('cv2.__version__ =', cv2.__version__)
|
|
print('Python version (must be > 3.0):', sys.version)
|
|
assert(int(sys.version[0]) >= 3)
|
|
|
|
|
|
models_directory = do.get_directory()
|
|
print('Using the following directory for deep learning models:', models_directory)
|
|
use_neural_compute_stick = do.use_neural_compute_stick()
|
|
if use_neural_compute_stick:
|
|
print('Attempt to use an Intel Neural Compute Stick 2.')
|
|
else:
|
|
print('Not attempting to use an Intel Neural Compute Stick 2.')
|
|
|
|
use_tiny = True
|
|
if use_tiny:
|
|
confidence_threshold = 0.0
|
|
else:
|
|
confidence_threshold = 0.5
|
|
|
|
detector = od.ObjectDetector(models_directory,
|
|
use_tiny_yolo3=use_tiny,
|
|
confidence_threshold=confidence_threshold,
|
|
use_neural_compute_stick=use_neural_compute_stick)
|
|
default_marker_name = 'object'
|
|
node_name = 'DetectObjectsNode'
|
|
topic_base_name = 'objects'
|
|
fit_plane = False
|
|
node = dn.DetectionNode(detector, default_marker_name, node_name, topic_base_name, fit_plane)
|
|
node.main()
|
|
try:
|
|
rospy.spin()
|
|
except KeyboardInterrupt:
|
|
print('interrupt received, so shutting down')
|
|
|