File name
Commit message
Commit date
bug fix : mismatch in request file fields name causing postprocess_draft.py not reading segmented image
06-03
bug fix : mismatch in request file fields name causing postprocess_draft.py not reading segmented image
06-03
bug fix : mismatch in request file fields name causing postprocess_draft.py not reading segmented image
06-03
1. code cleanup of inference_gpu_.py and inference_.py is now inference_cpu_.py 2. streaming_url_updator.py CORS fix 3. working DB INSERT of postprocess_draft.py
05-29
bug fix : mismatch in request file fields name causing postprocess_draft.py not reading segmented image
06-03
# This script only works if this is the main process.
# This script must be executed with bash script that is located in the root directory of this project
# This is by design, and is a way to circumvent GIL of python, because the server needs to handle multiple video streaming at once.
if __name__ == "__main__":
from ITS.api import gather_cctv_list
from hls_streaming.hls import FrameCapturer
import argparse
import pandas as pd
import time
def refresh_hls_address(lat, lon, lat_lon_interval=0.0001):
api_result = gather_cctv_list(
xmin=lat - lat_lon_interval, ymin=lon - lat_lon_interval,
xmax=lat + lat_lon_interval, ymax=lon + lat_lon_interval,
intervals=1, roadType="its", cctvType=1
)
return api_result.loc[0]["cctvurl"]
args = argparse.ArgumentParser()
args.add_argument("--cctv_num", type=int,
help="Index number of cctv, to view or edit the list of cctv, see cctv_list.csv")
args.add_argument("--interval", type=float, default=5,
help="Interval of frame extract of the process, unit is second, default is 5 seconds")
args.add_argument("--video_buffer", type=float, default=15,
help="How may seconds of video frame buffer will be there, "
"default value is 15 seconds, which matches ITS video streaming packet response interval")
args = args.parse_args()
# This is a must, because if you refer to variables inside args directly,
# when ERROR happens out of that variables or related, python can not
# direct you to where it happens and instead unintelligible garbage
cctv_ind = args.cctv_num
frame_extract_interval = args.interval
video_buffer = args.video_buffer
cctv_info = pd.read_csv("config_files/cctv_list.csv")
cctv_info = cctv_info.iloc[cctv_ind]
lat = cctv_info["coordx"]
lon = cctv_info["coordy"]
name = cctv_info["cctvname"]
if name.find("국도"):
roadtype = 'its'
else:
roadtype = 'ex'
# initiate ITS CCTV streaming via hls
while True:
cctv_url = refresh_hls_address(lat, lon, )
print(name)
hls_streaming = FrameCapturer(cctv_url, name, lat, lon, frame_extract_interval, video_buffer, 300, "Asia/Seoul",
endpoint= "http://localhost:12345/cctv/infer")
hls_streaming.start()
time.sleep(60000)
hls_streaming.stop()