Skip to content

Commit 5bfd055

Browse files
committed
flir update
1 parent 389f68a commit 5bfd055

13 files changed

+400
-116
lines changed
90.8 KB
Loading
90.7 KB
Loading
89.4 KB
Loading
88.6 KB
Loading
118 KB
Loading
118 KB
Loading
Lines changed: 23 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -1,25 +1,23 @@
1-
<?xml version="1.0"?>
2-
<opencv_storage>
3-
<CameraMatrix type_id="opencv-matrix">
4-
<rows>3</rows>
5-
<cols>4</cols>
6-
<dt>d</dt>
7-
<data>
8-
1. 0. 0. 0. 0. 1. 0. 0. 0. 0. 1. 0.</data></CameraMatrix>
9-
<Intrinsics type_id="opencv-matrix">
10-
<rows>3</rows>
11-
<cols>3</cols>
12-
<dt>d</dt>
13-
<data>
14-
2.2195254859490242e+03 0. 6.3119334213807008e+02 0.
15-
2.2105500545458722e+03 5.0709813305241295e+02 0. 0. 1.</data></Intrinsics>
16-
<Distortion type_id="opencv-matrix">
17-
<rows>8</rows>
18-
<cols>1</cols>
19-
<dt>d</dt>
20-
<data>
21-
3.4069244650104196e+02 -8.2614727011352954e+01
22-
5.3855571633968161e-04 -4.2653581669292165e-04
23-
1.4468460112128241e+03 3.4158730281758454e+02 3.1853232774633369e+01
24-
1.5112610673008874e+03</data></Distortion>
25-
</opencv_storage>
1+
<?xml version="1.0"?>
2+
<opencv_storage>
3+
<CameraMatrix type_id="opencv-matrix">
4+
<rows>3</rows>
5+
<cols>4</cols>
6+
<dt>d</dt>
7+
<data>
8+
1. 0. 0. 0. 0. 1. 0. 0. 0. 0. 1. 0.</data></CameraMatrix>
9+
<Intrinsics type_id="opencv-matrix">
10+
<rows>3</rows>
11+
<cols>3</cols>
12+
<dt>d</dt>
13+
<data>
14+
1.6062015380859375e+03 0. 6.3332989501953125e+02 0.
15+
1.6014158935546875e+03 5.1715637207031250e+02 0. 0. 1.</data></Intrinsics>
16+
<Distortion type_id="opencv-matrix">
17+
<rows>4</rows>
18+
<cols>1</cols>
19+
<dt>d</dt>
20+
<data>
21+
-3.8691338896751404e-01 1.8264715373516083e-01
22+
5.0779170123860240e-04 7.0454436354339123e-04</data></Distortion>
23+
</opencv_storage>

calibration/openpose/models/18284511.xml

Lines changed: 11 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -5,21 +5,24 @@
55
<cols>4</cols>
66
<dt>d</dt>
77
<data>
8-
1. 0. 0. 0. 0. 1. 0. 0. 0. 0. 1. 0.</data></CameraMatrix>
8+
8.6182423177752765e-01 9.2365614963480780e-02
9+
-4.9872596352455129e-01 1.4962586538184854e+00
10+
-1.3722739884753807e-01 9.8906887675602162e-01
11+
-5.3957372416754107e-02 -2.1298977473255817e-01
12+
4.8829052266720557e-01 1.1494063774400942e-01 8.6507861796971230e-01
13+
1.8544227437140977e+00</data></CameraMatrix>
914
<Intrinsics type_id="opencv-matrix">
1015
<rows>3</rows>
1116
<cols>3</cols>
1217
<dt>d</dt>
1318
<data>
14-
1.7493516874556797e+04 0. 6.2257988687315344e+02 0.
15-
9.4785119054217794e+03 5.5347137462907267e+02 0. 0. 1.</data></Intrinsics>
19+
1.4512408447265625e+03 0. 6.2678826904296875e+02 0.
20+
1.4474798583984375e+03 5.0415841674804688e+02 0. 0. 1.</data></Intrinsics>
1621
<Distortion type_id="opencv-matrix">
17-
<rows>8</rows>
22+
<rows>4</rows>
1823
<cols>1</cols>
1924
<dt>d</dt>
2025
<data>
21-
-6.9219150298364918e+00 -1.2991824402572118e+04
22-
-8.5551231831666785e-01 1.7677065347656679e-01
23-
-4.7452213539911456e+00 -6.4539126505931321e-01
24-
-1.2060399144254858e+04 -8.3442993985822300e-01</data></Distortion>
26+
-4.0553498268127441e-01 2.4542711675167084e-01
27+
-5.2636169129982591e-04 -2.1352977491915226e-03</data></Distortion>
2528
</opencv_storage>

calibration/openpose/models/18284512.xml

Lines changed: 11 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -5,21 +5,24 @@
55
<cols>4</cols>
66
<dt>d</dt>
77
<data>
8-
1. 0. 0. 0. 0. 1. 0. 0. 0. 0. 1. 0.</data></CameraMatrix>
8+
9.0208230725757932e-01 -2.9102426381812242e-02
9+
4.3058165278090221e-01 -1.3609990403909840e+00
10+
9.3947013505841281e-02 9.8703875578159572e-01
11+
-1.3010938950918449e-01 4.1587256522273949e-02
12+
-4.2121427989347127e-01 1.5782123863349512e-01
13+
8.9312428421245715e-01 7.3808612629077830e-01</data></CameraMatrix>
914
<Intrinsics type_id="opencv-matrix">
1015
<rows>3</rows>
1116
<cols>3</cols>
1217
<dt>d</dt>
1318
<data>
14-
2.5190296286059706e+03 0. 6.8262711798034582e+02 0.
15-
2.5173966277815634e+03 5.2610166531132131e+02 0. 0. 1.</data></Intrinsics>
19+
1.3515637207031250e+03 0. 6.6185534667968750e+02 0.
20+
1.3574169921875000e+03 5.3975592041015625e+02 0. 0. 1.</data></Intrinsics>
1621
<Distortion type_id="opencv-matrix">
17-
<rows>8</rows>
22+
<rows>4</rows>
1823
<cols>1</cols>
1924
<dt>d</dt>
2025
<data>
21-
-6.8342831150874883e-01 4.1219573797204177e+01
22-
-9.4593202375319197e-03 -1.9246519181344207e-02
23-
5.6781454222653610e+02 9.7374073817476259e-01 2.3622041096227374e+01
24-
7.6402715762861374e+02</data></Distortion>
26+
-4.1849634051322937e-01 2.5624269247055054e-01
27+
-6.4104846387635916e-05 -1.6572237946093082e-03</data></Distortion>
2528
</opencv_storage>

flir/flir_capture_all_continuous.py

Lines changed: 81 additions & 52 deletions
Original file line numberDiff line numberDiff line change
@@ -18,19 +18,32 @@
1818
ap.add_argument("-f", "--force", action="store_true", help="force overwrite in folder")
1919
ap.add_argument("--fps", type=int, default=20, help="set framerate")
2020

21+
ap.add_argument("--openpose", action="store_true", help="name images for openpose (e.g. 000000000000_rendered, ..._1, ..._2, ...)")
22+
2123
args = vars(ap.parse_args())
2224

25+
save_for_openpose = args['openpose']
26+
27+
fps = args["fps"]
28+
2329
# make folder
2430
target_folder = args['folder']
2531
if os.path.isdir(target_folder):
26-
if args['force'] == False:
32+
if not args['force']:
2733
print("{}: error: folder {} exists. Use --force to overwrite files.".format(os.path.basename(sys.argv[0]), target_folder))
2834
sys.exit()
2935
else:
3036
os.makedirs(target_folder)
3137

3238

3339

40+
def set_fps(cam, fps):
41+
print("current acquisitionFrameRate", cam.AcquisitionFrameRate.GetValue() )
42+
cam.AcquisitionFrameRateEnable.SetValue(True)
43+
print("acquisitionFrameRate Enable", cam.AcquisitionFrameRateEnable.GetValue() )
44+
cam.AcquisitionFrameRate.SetValue(fps)
45+
print("acquisitionFrameRate set to", cam.AcquisitionFrameRate.GetValue() )
46+
3447
def set_trigger_mode(cam, triggerSource):
3548
cam.TriggerMode.SetValue(PySpin.TriggerMode_Off)
3649
cam.TriggerSource.SetValue(triggerSource)
@@ -78,7 +91,8 @@ def reset_trigger_mode_software(cam):
7891
if cam_id == master_id:
7992
print("master: {}".format(cam_id))
8093
master = cam
81-
set_trigger_mode(cam, PySpin.TriggerSource_Software)
94+
#set_trigger_mode(cam, PySpin.TriggerSource_Software)
95+
set_fps(cam, fps)
8296
else:
8397
print("follower: {}".format(cam_id))
8498
set_trigger_mode(cam, PySpin.TriggerSource_Line3)
@@ -141,74 +155,89 @@ def run(self):
141155

142156
count = 0
143157

144-
worker = ImageWorker()
145-
worker.start()
146-
147-
fps = args["fps"]
148-
fps_report_frequency = fps*2
149-
150-
start = last = time.time()
151-
last_fps = 0
152-
153-
while 1:
154-
if cv2.waitKey(1) != -1:
155-
break
158+
workers = []
156159

157-
# wait until
158-
while time.time() < (start + 1.0/fps):
159-
time.sleep(0.01)
160-
161-
start = time.time()
162-
last_fps += 1.0 / (start-last)
163-
last = time.time()
164-
165-
if count % fps_report_frequency == 0:
166-
print(worker.images.qsize() )
167-
print("fps {0:.3f}".format( last_fps / fps_report_frequency))
168-
last_fps = 0
169-
170-
try:
171-
master.TriggerSoftware.Execute()
172-
count += 1
173-
except PySpin.SpinnakerException as ex:
174-
print("Error: {}".format(ex))
175-
176-
for cam in cameras:
177-
try:
178-
i = cam.GetNextImage()
179-
#print(i.GetWidth(), i.GetHeight(), i.GetBitsPerPixel())
180-
181-
if i.IsIncomplete():
182-
pass
183-
else:
184-
cam_id = cam.GetUniqueID()
185-
filename = "captures/cam_{}__{}.jpg".format(cam_id, count)
186-
worker.addImage( (filename, i) )
187-
i.Release()
188-
del i
189-
except PySpin.SpinnakerException as ex:
190-
print("Error: {}".format(ex))
160+
for i in range(len(cameras)):
161+
worker = ImageWorker()
162+
worker.start()
163+
workers.append(worker)
191164

165+
count = 0
166+
fps_report_frequency = fps*2
167+
start_time = time.time()
168+
169+
try:
170+
while 1:
171+
if cv2.waitKey(1) != -1:
172+
break
173+
174+
if count % fps_report_frequency == 0:
175+
fps = fps_report_frequency / (time.time() - start_time) # / fps_report_frequency
176+
print("fps {:.3f} image count {}, in buffer {}".format(fps, count,workers[0].images.qsize() ))
177+
start_time = time.time()
178+
179+
for n in range(len(cameras)):
180+
cam = cameras[n]
181+
try:
182+
i = cam.GetNextImage()
183+
#print(i.GetWidth(), i.GetHeight(), i.GetBitsPerPixel())
184+
185+
if i.IsIncomplete():
186+
pass
187+
else:
188+
cam_id = cam.GetUniqueID()
189+
190+
if save_for_openpose:
191+
if n == 0:
192+
filename = "{}/{:012}_rendered.jpg".format(target_folder, count)
193+
else:
194+
filename = "{}/{:012}_rendered_{}.jpg".format(target_folder, count, n)
195+
else:
196+
filename = "{}/cam_{}__{:06}.jpg".format(target_folder, cam_id, count)
197+
workers[n].addImage( (filename, i) )
198+
199+
if cam_id == master_id:
200+
count += 1
201+
202+
i.Release()
203+
del i
204+
except PySpin.SpinnakerException as ex:
205+
print("Error: {}".format(ex))
206+
except KeyboardInterrupt:
207+
pass
192208
#
193209
# cleanup
194210
#
195211

196-
worker.stop()
212+
for w in workers:
213+
w.stop()
197214

198215
while(1):
199-
print("{} images to be processed. waiting for thread to finish".format(worker.images.qsize()))
216+
report = ""
217+
for w in workers:
218+
report = report + " {}".format(w.images.qsize())
219+
220+
print("{} images to be processed. waiting for thread to finish".format(report))
200221
time.sleep(0.5)
201-
if worker.images.empty():
222+
223+
done = True
224+
for w in workers:
225+
if not w.images.empty():
226+
done = False
227+
if done:
202228
break
203229

230+
231+
master = None
232+
204233
for cam in cameras:
205234
cam.EndAcquisition()
206235
reset_trigger_mode_software(cam)
207236
cam.DeInit()
208237
del cam
238+
209239
del cameras
210240
del cam_list
211241

212242
system.ReleaseInstance()
213243
del system
214-

0 commit comments

Comments
 (0)