Suggest an image segmentation technique to find the paste radii?
This problem can probably be solved easier if there is a known relationship between the camera position and the metallic device that is over the paste. If the device and the camera are both fixed, for example, it would be easy to use a picture of the device without the paste to eliminate it from the other pictures.

But here is one suggestion for measuring the diameter of the paste using only this given image. I'm using DIPimage, because I know it best. I'm sure the same can be accomplished with the Image Processing Toolbox.

% Read in image:
img = readim('https://i.stack.imgur.com/5FLCs.jpg');
img = img{2}; % Use the green channel
% Alternating sequential filters to keep only the dark big circular shapes
paste = opening(img,15,'elliptic','add max');
paste = closing(paste,30,'elliptic','add max');
paste = opening(paste,60,'elliptic','add max');
paste = closing(paste,90,'elliptic','add max');
paste = opening(paste,120,'elliptic','add max');


The sequence of opening and closing are meant to remove specular reflections and much of the metallic device. Here is what the image looks like after this step:



There are some bulges to the left still, I didn't put any effort into trying to remove those, because there is sufficient outline for correct measurement.

% Find paste outline:
labs = label(~threshold(paste,'otsu')); % threshold and label
D = traceobjects(labs,[],2,'convex hull'); % get object outlines
[~,index] = max(cellfun(@length,D)); % find the longest outline
D = D{index}; % keep only the longest outline
% Display:
dipshow(img)
hold on
plot(D(:,1),D(:,2),'r')


This shows the convex hull of the outline over the original image, to show that the filtering didn't move the edges of the paste:



Next, I'll use code to list antipodal pairs that I get from this blog post. These are points on opposite side of the convex hull. This is the reason I used traceobjects with the 'convex hull' option, the algorithm to list antipodal pairs only works with a convex hull.

% Signed area of triangle
area = @(pt1,pt2,pt3) ( (pt2(1)-pt1(1))*(pt3(2)-pt1(2)) - ...
                        (pt2(2)-pt1(2))*(pt3(1)-pt1(1)) ) / 2;
% Height of triangle, pt3 is the top vertex
height = @(pt1,pt2,pt3) ( (pt2(1)-pt1(1))*(pt3(2)-pt1(2)) - ...
                          (pt2(2)-pt1(2))*(pt3(1)-pt1(1)) ) / ...
                                               norm(pt2-pt1);
% Next point along the polygon
next = @(p,N) mod(p,N)+1;

diameters = [];
N = size(D,1);
p0 = N;
p = 1;
q = 2;
while area(D(p,:),D(next(p,N),:),D(next(q,N),:)) &gt; ...
      area(D(p,:),D(next(p,N),:),D(q,:))
   q = next(q,N);
end
q0 = q;
while p~=p0
   p = next(p,N);
   listq = q;                       % p,q is an antipodal pair
   while area(D(p,:),D(next(p,N),:),D(next(q,N),:)) &gt; ...
         area(D(p,:),D(next(p,N),:),D(q,:))
      q = next(q,N);
      listq(end+1) = q;             % p,q is an antipodal pair
   end
   if area(D(p,:),D(next(p,N),:),D(next(q,N),:)) == ...
      area(D(p,:),D(next(p,N),:),D(q,:))
      listq(end+1) = next(q,N);     % p,q+1 is an antipodal pair
   end
   disp(listq)
   for ii=1:length(listq)
      v = D(p,:)-D(q,:);
      d = norm(v);
      diameters(end+1) = d;
   end
end


Finally, we can use these distances between antipodal pairs to find the average diameter of the paste. We'll assume that about 1/3 of the boundary is affected by the bulges on the left that I didn't completely remove. Therefore we'll use the 2/3 smallest values, and take the mean of those:

diameters = sort(diameters);
diameters = diameters(1:round(length(diameters)*2/3));
disp(mean(diameters))


This gives me 773.25 pixels. You will need to know the size of a pixel to translate this value to physical units.