def main(): """ Full Jetson Detector Program """ parser = argparse.ArgumentParser(description="Inference Program") parser.add_argument( '--config_file', help= f'json configuration file containint params to initialize the jetson', type=str) args = parser.parse_args() try: global objectDetector if not os.path.exists(args.config_file): raise ValueError( f'Cannot find configuration file "{args.config_file}"') with open(args.config_file, 'r') as f: robotJetsonConfiguration = json.load(f) log.warning(LOGGER_OBJECT_DETECTOR_STARTUP, msg='Launching object detector now.') loop = asyncio.get_event_loop() # loop.set_debug(enabled=True) loop.set_exception_handler(handle_exception) log.warning(LOGGER_OBJECT_DETECTOR_STARTUP, msg='Launching runner.') signals = (signal.SIGINT, signal.SIGTERM) for s in signals: loop.add_signal_handler(s, lambda s=s: loop.create_task( objectDetector.graceful_shutdown(s))) objectDetector = ObjectDetector(robotJetsonConfiguration, loop) loop.create_task(objectDetector.run()) loop.run_forever() except SystemExit: log.info(LOGGER_OBJECT_DETECTOR_STARTUP, 'Caught SystemExit...') except Exception: log.critical(LOGGER_OBJECT_DETECTOR_STARTUP, 'Crash in startup : {}'.format(traceback.print_exc())) finally: # loop.stop() loop.close() logging.shutdown()
from detector import ObjectDetector import sys from PIL import Image import numpy as np img_path = sys.argv[1] img = np.asarray(Image.open(img_path), dtype=np.uint8) # Provide the .pb model file path graph_path = "./faster_rcnn_resnet50_coco_2018_01_28/frozen_inference_graph.pb" model = ObjectDetector(graph_path) out = model.run(img) print(out)