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()
示例#2
0
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)