AI Web Services API for Floor Plan detection and Takeoff

Using deep learning and computer vision technologies to recognize room areas with measurements on a floor plan.

How it works  Demo

Contact: ai@measuresquare.com

Architecture floorplans are mostly created in PDF, CAD and image file formats. To recognize and takeoff rooms in a floorplan, estimators need to import plans into takeoff software and manually read and trace around the room corners to recreate rooms in digital form.

Measure Square has developed a new approach to automate takeoff process by using computer algorithm to detect rooms including doors. This new approach is based on deep learning algorithms of Artificial Intelligence techniques.

Product features

Wide range of applications

– Measure estimating for residential and commercial constructions
– Automate recreation of 3D space based on 2D plans
– Automatic object detection and counts

AI sample floorplan
AI detected rooms with size

Plan Detection API Web Services

– Measure Square plan detection API provides a cloud-based web services that 3rd party programs can easily integrate their application

Easy - three simple steps

– Step 1: Upload floorplan file with scale parameters
– Step 2: Receive return file and data sets
– Step 3: Parse data set XML and continue with your application

AI complete detected plan

Floor Plan Detection Web Services API and Data Format Specs

API Specification Detail (click to open)

Method

POST(HTTP)

Request Url

http://ai.measuresquare.com/api/file

Authentication

Use HTTP Basic auth
We will provide a string format of user:pass
BASE64 encode the string
Supply an Authorization header with content Basic followed by the encoded string.
For example:

The string ‘user:pass’ encodes to ‘dXNlciUzQXBhc3M=’
So that we should add “Authorization: Basic dXNlciUzQXBhc3M=” to request header

Parameters

  • pixellength: scale, represents the length in fact of each pixel (by millimeter)
  • file: floorplan file

Return:

  • Json object,include two field, rooms and doors
  • rooms: a list of room object, each room have two field (id and points)
  • doors: a list of door object, The structure is the same as rooms
  • points: a list of point object, each point have two integer field x,y

data example

     {
        rooms:[
            {
                id: 1,
                points: [
                    { x:x1, y:y1}, { x:x2, y:y2}, ...
                ]
            },
            {
                id: 2,
                points: [
                    { x:x1, y:y1}, { x:x2, y:y2}, ...
                ]
            }
            ...
        ],
        doors:[
            {
                id: 1,
                points: [  { x:x1, y:y1}, { x:x2, y:y2} ]
            },
            {
                id: 2,
                points: [  { x:x1, y:y1}, { x:x2, y:y2} ]
            },
            ...
        ]
    }

Python example

data = {'PixelLength':4}
files = {'file': open(filepath, 'rb')}
response = requests.post(url, data=data, files=files, auth=HTTPBasicAuth('user', 'pass'))