Wheelchair accessibility audit from a 3D scan
A classified scan of part of S3DIS Area 2 becomes a numbered accessibility audit: clear width, 1.50 m turning circles, doors against the required width and the rooms a wheelchair reaches from the entrances. 26 issues on the plan in under 4 s, the same however the scan is read.
The code
Public, no email needed. Read it, fork it, run it, break it.
accessibility_audit.pyThe nine steps, from the walkable grid to the numbered issue list and the ramp.prepare_s3dis.pyRebuilds the article’s part of Area 2 from your own S3DIS download, order-free, and prints its fingerprint.visualize.pyThe stepped 3D replay, one Open3D window per step.check_stability.pyThe audit four ways (as is, again, shuffled, rounded to 1 mm), twelve headline numbers side by side.tests/test_audit.pyForty-six known-answer tests on scans built point by point (python -m pytest tests -q).tests/run_tests.pyRuns the tests from a script, for a double-click or a job runner.run.batWindows double-click runner, audit then replay.
The reference output
The files my run wrote, so you can check yours against them. Tell me where to send them.
issues.csvThe 26 numbered issues, with room, position, measured and required value.metrics.jsonThe headline numbers in one flat file, with the SHA-256 fingerprint of the scan the audit read.summary.jsonEvery number the audit printed, with the door list and the issue list.
Data: Reference outputs computed by Florent Poux from S3DIS, Area 2: I. Armeni, O. Sener, A. R. Zamir, H. Jiang, I. Brilakis, M. Fischer, S. Savarese, 3D Semantic Parsing of Large-Scale Indoor Spaces, CVPR 2016.
Get the data: S3DIS, the Stanford Large-Scale 3D Indoor Spaces dataset
From the official page, download Stanford3dDataset_v1.2_Aligned_Version.zip, unzip it
anywhere, then run python prepare_s3dis.py --s3dis "path/to/Stanford3dDataset_v1.2_Aligned_Version" in the kit folder.
prepare_s3dis.py reads Area 2 with its stairs, keeps the north half without the ceiling, and writes the 4,031,139 points the audit ran on into a data/ folder next to the scripts, where accessibility_audit.py looks for them. It keeps one point per voxel by a rule that ignores read order, so your rebuild matches the article’s whatever order your copy is read in, and it prints a fingerprint to prove it. Nothing else from S3DIS is needed.
Stanford3dDataset_v1.2_Aligned_Version/Area_2/*/Annotations/*.txtRead. Every room of Area 2, one text file per object, named after its class (the stairs files included). Only Area_2 is needed.data/s3dis_area2_access.plyWritten next to the scripts. The north half of Area 2 the audit ran on, 4,031,139 points, fingerprint 6cfc4bc8…41181.
The numbers in the article come from S3DIS. Run the kit on your own scan and you get your own numbers.
Terms: Stanford’s registration form: “I will not redistribute the dataset in any way and in any format. Any new access will be established through this form and/or authors’ official method of releasing the dataset. I agree that the data and derivatives will be used only for non-commercial research and academic purposes.”
Get it from the official dataset pageThe page’s download link opens the dataset’s registration form.
Where should I send them?
One email, and the download links appear right here. You also get them in your inbox so you can come back to this any time.
Here they are
Yours to keep. Run the pipeline on this scene first to reproduce every number in the article, then point it at something of your own.
The same links are in your inbox. If nothing arrives, check spam, then mail me and I will send them by hand.
3D Data Science with Python
Building Accurate Digital Environments with 3D Point Cloud Workflows
This kit is one pipeline. The book is the discipline underneath them: 690 pages from the Python foundations through point cloud processing, meshing and the engineering that keeps a 3D workflow standing up in production. If the script above makes sense and you want the structure they came from, that is where it lives.
See the book or buy it on O’ReillyThese are the materials for Wheelchair accessibility audit from a 3D scan, one of the tutorials I publish on Medium and on learngeodata.eu. Every kit lives at learngeodata.eu/materials/.