Show Posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.

Messages - Seb_B

Pages: [1] 2 3
Hello everybody !

I'm working on a multi-chunk project. Here's what I've already done.

By using the batch process, I've align, built dense cloud and built the mesh for my four chunks. Then I've merged all the chunks.
I've build the mesh for the merged chunks.
Now I'm trying to export an orthophoto out of it and always receive this message : "Not enough memory".

I've try to export it at different resolution. I've also try to change boundaries to decresae the size of the orthophoto but I always get the same message "Not enough memory" and in photoscan I'm getting a "bad allocation" message.

My project is compose like this :
Cameras : 4828,4730 aligned
Tie Points : 466,024 points
Dense cloud : 537,705,828 points
3D models : 35,631,307 faces

My computer has 64G RAM (intel Core i7). Graphical card : NVIDIA Quadro K600
Photoscan v1.1.5

Could someone help me ?




How can I write a function which returns the projection numbers camera and the projection error of each cameras?

I tryied to build this function based on the code from:

But It seems to not compute the right projection number and the projection error!

Code: [Select]
def calc_reprojection(chunk):
point_cloud = chunk.point_cloud
points = point_cloud.points
npoints = len(points)
projections = chunk.point_cloud.projections
err_sum = 0
num = 0
photo_avg = {}

photo_info=[[float('nan') for j in range(3)] for i in range(len(chunk.cameras))]#Ajout seb
#print("total camera number: ",len(chunk.cameras))
for camera in chunk.cameras:
if not camera.transform:
T = camera.transform.inv()
calib = camera.sensor.calibration
point_index = 0
photo_num = 0
photo_err = 0
for proj in projections[camera]:
track_id = proj.track_id
while point_index < npoints and points[point_index].track_id < track_id:
point_index += 1
if point_index < npoints and points[point_index].track_id == track_id:
if not points[point_index].valid:
dist = calib.error(T.mulp(points[point_index].coord), proj.coord).norm() ** 2
err_sum += dist
num += 1
photo_num += 1
photo_err += dist
#Ajout seb
if photo_num==0:
photo_info[i]=[camera,photo_num,math.sqrt(photo_err / photo_num)]
return photo_info

Python Scripting / Re: Align photos with markers only
« on: June 10, 2015, 01:28:51 PM »

I am also interested to understand if Photoscan uses markers for the alignment step?

As I understand your answer Alexey, reducing the number of tie points will increase the wieght of the markers?


Python Scripting / Export Markers
« on: May 16, 2015, 01:45:59 PM »

How can I export the markers with python as what is done with Tools/Export/markers in the GUI? Same question for loading its.

chunk.saveReference() only export the coordinates of the markers in the project but not the location of markers in each images. This is doing the same as Saving in the Reference window!

Sorry my T=chunk.transform.matrix

Hello Alexey,

I am confused! I do project with makers that I give "local coordonates" (eg: x=1m, y=0.5m, z=1m). These coordinates are geographic coordinates or geocentric coordinate?
I want a region.size of V_s= (5m,5m,20m)
How I convert my vector V_s in internal coordinate to resize my region?

Following your last comment in this post I should do this:
V_s= T.inv().mulp(PhotoScan.Vector([5, 5,22])
new_reg = chunk.region
new_reg.size = V_s
chunk.region = new_reg
Does it right? If yes, I don't get the desired size of my bounding box!

If I do this:[5,5,20]))
V_s= T.inv().mulp(V_s)
I have an error message: " AttributeError: 'NoneType' object has no attribute 'unproject'  "

If I do this:
V_s= PhotoScan.Vector([5, 5,22])
new_reg = chunk.region
new_reg.size = V_s
chunk.region = new_reg
The bounding box is alright in some project but not in all! What I am doing wrong???

Python Scripting / Re: Script to match Z axis
« on: April 07, 2015, 02:42:17 PM »

the script to rotate the bounding box is written in the wiki:

Python Scripting / Remove 3D points
« on: April 07, 2015, 11:45:59 AM »

How can I remove a 3d point?

What does the ".valid" in the class  PhotoScan.PointCloudPoint?

I use it to remove points, but I am not sure it is all right! The points wiht a False value for ".valid" disappear from my GUI but the total number of points is still the same than before to use the ".valid".

Does optimize will use the points with the valid = False?



On the other hand, chunk.size is in the chunk coodinate system and not in "internal coordinate system"! This confusing!  ;)


all is in the subject! When would it be interesting to use this method? What are the editings which might require a refineMatches? Does Keypoints descriptors can be edited?


Python Scripting / Re: when using refineMatches?
« on: March 28, 2015, 02:25:20 PM »
The method Chunk.refineMatches() doesn't seem to work!

Python Scripting / Remove marker from photo
« on: March 27, 2015, 03:07:45 PM »

What is the script to remove the marker from 1 photo?



Python Scripting / Re: Edit coords
« on: March 26, 2015, 04:00:05 PM »
Great! Thank you!

Python Scripting / Re: Edit coords
« on: March 26, 2015, 03:58:01 PM »
I tried
v_est =

It does not work. May be because I don't have crs, I am working on local coodinates.

Python Scripting / Re: Edit coords
« on: March 26, 2015, 03:35:45 PM »

What is the code for PS 1.1 to extract the estimated camera location?

vt = chunk.transform * vc         doesn't seem to work!

Thank you

Pages: [1] 2 3